
# 授权数据库账号 - AllowDbUserPrivilege
#### 功能介绍
在指定实例的数据库中, 设置账号的权限。
- 调用接口前，您需要了解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=AllowDbUserPrivilege)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-rds/rds_10_0005.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
 
| 授权项                         | 访问级别  | 资源类型（\*为必须） | 条件键                                                                          | 别名 | 依赖的授权项 |
|:---|:---|:---|:---|:---|:---|
| rds:databasePrivilege:grant | 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_privilege
  

- 参数说明
  表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参数说明 
| 名称      | 是否必选 | 参数类型             | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| db_name | 是    | String           | **参数解释：** 数据库名称。 **约束限制：** 不涉及。 **取值范围：** 该参数值可调用[查询数据库列表](https://support.huaweicloud.com/api-rds/rds_06_0035.html)接口，通过[表3](https://support.huaweicloud.com/api-rds/rds_06_0035.html#rds_06_0035__table1457984914368)中的"name"获取。 **默认取值：** 不涉及。 |
| users   | 是    | Array of objects | **参数解释：** 每个元素都是与数据库相关联的账号。 每个元素结构请参见[表3]。 **约束限制：** 单次请求最多支持50个元素。                                                                                                                                                                                                                                   |
   
 表3users列表元素数据结构说明 
| 名称       | 是否必选 | 参数类型    | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| name     | 是    | String  | **参数解释：** 数据库账号名称。 **约束限制：** 不涉及。 **取值范围：** 数据库账号名称在1到32个字符之间，由字母、数字、中划线或下划线组成，不能包含其他特殊字符。 - 若数据库版本为MySQL5.6，账号长度为1～16个字符。  - 若数据库版本为MySQL5.7和8.0，账号长度为1～32个字符。   **默认取值：** 不涉及。 |
| readonly | 是    | Boolean | **参数解释：** 是否为只读权限。 **约束限制：** 不涉及。 **取值范围：** - true表示只读。  - false表示可读写。   **默认取值：** 不涉及。                                                                                              |
   
#### 请求示例
授权**rds** 账号可读可写、**rds001** 账号只读。
```
POST https://{endpoint}/v3/0483b6b16e954cb88930a360d2c4e663/instances/dsfae23fsfdsae3435in01/db_privilege
{
    "db_name": "rds-test",
    "users": [
        {
            "name": "rds",
            "readonly": false
        },
        {
            "name": "rds001",
            "readonly": true
        }
    ]
}
```
#### 响应消息
- 正常响应要素说明
  表4要素说明 
  | 名称   | 参数类型   | 说明                                                                                                                                         |
  |:---|:---|:---|
  | resp | String | **参数解释：** 调用结果。 **取值范围：** 调用正常时，返回"successful"。 |
     
  

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