
# 授权数据库账号的读写权限 - AllowDbPrivilege
#### 功能介绍
在指定实例的数据库中, 设置账号的读写权限。
- 调用接口前，您需要了解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=AllowDbPrivilege)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-rds/rds_10_0005.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
 
| 授权项                         | 访问级别 | 资源类型（\*为必须） | 条件键                                                                           | 别名 | 依赖的授权项 |
|:---|:---|:---|:---|:---|:---|
| rds:databasePrivilege:grant | -    | -           | g:EnterpriseProjectId g:ResourceTag/\<tag-key\> | -  | -      |
   
#### 接口约束
- 实例在创建、变更规格、修改端口、冻结、异常等状态下不能执行该操作。
- 创建的只读用户对public模式默认具有create和usage权限。
 
#### 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_11_0006.html)接口，通过[表3](https://support.huaweicloud.com/api-rds/rds_11_0006.html#rds_11_0006__table1457984914368)中的"name"获取。 不能和RDS for PostgreSQL模板库重名，RDS for PostgreSQL模板库包括postgres， template0 ，template1。 **默认取值**： 不涉及。 |
| users   | 是    | Array of objects | **参数解释**： 每个元素都是与数据库相关联的账号。单次请求最多支持50个元素。 每个元素结构请参见[表3]。 **约束限制**： 不涉及。                                                                                                                                                                                                                                                                                                                       |
   
 表3users列表元素数据结构说明 
| 名称          | 是否必选 | 参数类型    | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| name        | 是    | String  | **参数解释**： 数据库账号名称。 **约束限制**： 不涉及。 **取值范围**： 数据库账号名称在1到63个字符之间，由字母、数字、或下划线组成，不能包含其他特殊字符，不能以"pg"和数字开头，不能和系统用户名称相同且账号名称必须存在。 系统用户包括"rdsAdmin"、" rdsMetric"、"rdsBackup"、"rdsRepl"、" rdsProxy"、"rdsDdm"、"rdsDisaster"。 **默认取值**： 不涉及。 |
| readonly    | 是    | Boolean | **参数解释**： 数据库账号权限。 **约束限制**： 不涉及。 **取值范围**： - true：只读。  - false：可读可写。   **默认取值**： 不涉及。                                                              |
| schema_name | 是    | String  | **参数解释**： schema名称。 **约束限制**： 不涉及。 **取值范围**： schema名称在1到63个字符之间，由字母、数字、或下划线组成，不能包含其他特殊字符，不能以"pg"和数字开头，不能和RDS for PostgreSQL模板库重名，且schema名称必须存在。 RDS for PostgreSQL模板库包括postgres， template0 ，template1。 **默认取值**： 不涉及。                            |
   
#### 请求示例
授权数据库账号读写权限，rds账号可读可写、rds001账号只读、rds002账号可读可写。
```
POST https://{endpoint}/v3/0483b6b16e954cb88930a360d2c4e663/instances/f569f1358436479dbcba8603c32cc4aein03/db_privilege
{"db_name": "rds_test",
    "users": [
        {
            "name": "rds",
            "readonly": false,
            "schema_name": "teste123"
        },
        {
            "name": "rds001",
            "readonly": true,
            "schema_name": "teste123"
        },
       {
            "name": "rds002",
            "readonly": false,
            "schema_name": "teste123"
        }
    ]
 }
```
#### 响应消息
- 正常响应要素说明
  表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)。
