
# 创建数据库用户 - CreateDbUser
#### 功能介绍
在指定实例中创建数据库账号。
- 调用接口前，您需要了解API[认证鉴权](https://support.huaweicloud.com/api-rds/rds_03_0001.html)。
- 调用接口前，您需要了解[请求Header参数说明](https://support.huaweicloud.com/api-rds/rds_03_0005.html#rds_03_0005__section479119143310)。
 
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=RDS&api=CreateDbUser)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-rds/rds_10_0005.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
 
| 授权项                     | 访问级别  | 资源类型（\*为必须） | 条件键                                                                         | 别名 | 依赖的授权项 |
|:---|:---|:---|:---|:---|:---|
| rds:databaseUser:create | write | instance    | g:EnterpriseProjectId g:ResourceTag/\<tag-key\> | -  | -      |
   
#### 接口约束
- 实例在创建、变更规格、修改端口、异常或冻结状态下不能执行该操作。
- 同一实例多次调用此接口需串行。
- 除RDS界面和API以外的其他方式创建的数据库和账号，如果创建的数据库名和账号名不满足数据库命名规则（参见[表2](https://support.huaweicloud.com/api-rds/rds_06_0007.html#rds_06_0007__table52869820)）和账号命名规则（参见[表2](https://support.huaweicloud.com/api-rds/rds_06_0010.html#rds_06_0010__table52869820)），例如包含中文或不支持的特殊字符，那么该数据库和账号不支持RDS界面或API的数据库管理和账号管理功能。
- 如果源库的数据库名和账号名不满足数据库命名规则（参见[表2](https://support.huaweicloud.com/api-rds/rds_06_0007.html#rds_06_0007__table52869820)）和账号命名规则（参见[表2](https://support.huaweicloud.com/api-rds/rds_06_0010.html#rds_06_0010__table52869820)），迁移到目标库RDS for MySQL后，该数据库和账号也不支持RDS界面或API的数据库管理和账号管理功能。
 
#### URI
- URI格式 POST /v3/{project_id}/instances/{instance_id}/db_user
  

- 参数说明
  表1参数说明 
  | 名称          | 是否必选 | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
  |:---|:---|:---|
  | project_id  | 是    | **参数解释：** 租户在某一region下的project ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-rds/rds_03_0002.html)。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                       |
  | instance_id | 是    | **参数解释：** 实例ID。 **约束限制：** 非空。 **取值范围：** 该参数值可调用[查询数据库实例列表](https://support.huaweicloud.com/api-rds/rds_01_0004.html)接口，通过[表4](https://support.huaweicloud.com/api-rds/rds_01_0004.html#rds_01_0004__table2058713718267)中的"id"获取。 **默认取值：** 不涉及。 |
     
  
 
#### 请求消息
 表2参数说明 
| 名称           | 是否必选 | 参数类型             | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| name         | 是    | String           | **参数解释：** 数据库账号名称。 **约束限制：** 不涉及。 **取值范围：** 数据库账号名称在1到32个字符之间，由字母、数字、中划线或下划线组成，不能包含其他特殊字符。 - 若数据库版本为MySQL5.6，账号长度为1～16个字符。  - 若数据库版本为MySQL5.7和8.0，账号长度为1～32个字符。   **默认取值：** 不涉及。                                                                                                        |
| password     | 是    | String           | **参数解释：** 数据库账号密码。 **约束限制：** 不涉及。 **取值范围：** - 对于RDS for MySQL实例，密码长度为8\~32个字符，至少包含以下字符中的四种：大写字母、小写字母、数字和特殊字符 \~ ! @ # $ % \^ \* - _ = + ? , ( ) \& . \|  - 密码不能和账号名或账号名的逆序相同。   建议您输入高强度密码，以提高安全性，防止出现密码被暴力破解等安全风险。 **默认取值：** 不涉及。 |
| comment      | 否    | String           | **参数解释：** 数据库账号备注。 **约束限制：** 目前仅支持MySQL 8.0.25及以上版本。 **取值范围：** 长度1\~512个字符。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                               |
| is_privilege | 否    | Boolean          | **参数解释：** 是否创建高权限用户。 **约束限制：** 不涉及。 **取值范围：** - true：表示创建高权限用户，暂不支持设置为true。  - false：表示创建非高权限用户。   **默认取值：** false                                                                                                                                                               |
| hosts        | 否    | Array of strings | **参数解释：** 授权用户登录数据库的IP列表。 **约束限制：** 不涉及。 **取值范围：** - 若IP地址为%，表示允许所有地址访问MySQL实例。  - 若IP地址为"10.10.10.%"，表示10.10.10.X的IP地址都可以访问MySQL实例。  - 支持添加多个IP地址。   **默认取值：** 不涉及。                                                               |
| databases    | 否    | Array of objects | **参数解释：** 授权用户登录的数据库，详情请参见[表3]。 **约束限制：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   
 表3databases元素结构说明 
| 名称       | 是否必选 | 参数类型    | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| name     | 是    | String  | **参数解释：** 授权已有数据库名称。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                   |
| readonly | 否    | Boolean | **参数解释：** 是否为只读权限。 **约束限制：** 不涉及。 **取值范围：** - true表示只读。  - false表示可读写。   **默认取值：** 不涉及。 |
   
#### 请求示例
创建数据库用户rds。
```
POST https://{endpoint}/v3/0483b6b16e954cb88930a360d2c4e663/instances/dsfae23fsfdsae3435in01/db_user
{
    "name": "rds",
    "password": "************",
    "comment": "mysql",
    "is_privilege": false,
    "hosts": [
        "%"  
    ],
    "databases" : [
       {
           "name" : "***",
            "readonly" : false
       }
    ]
}
```
#### 响应消息
- 正常响应要素说明
  表4要素说明 
  | 名称   | 参数类型   | 说明                                                                                                                                         |
  |:---|:---|:---|
  | resp | String | **参数解释：** 调用结果。 **取值范围：** 调用正常时，返回"successful"。 |
     
  

- 正常响应样例
  ```
  {
      "resp": "successful"
  }
  ```
  
- 异常响应 请参见[异常响应结果](https://support.huaweicloud.com/api-rds/rds_01_0010.html)。
  
 
#### 状态码
- 正常 202
  
- 异常 请参见[状态码](https://support.huaweicloud.com/api-rds/rds_10_0200.html)。
  
 
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-rds/rds_10_0201.html)。
