
# 授权数据库角色 - ConfiguringPermissionsofaDatabaseRole
#### 功能介绍
在指定实例的数据库中, 设置角色的权限。
- 调用接口前，您需要了解API [认证鉴权](https://support.huaweicloud.com/api-gaussdb/gaussdb_api_011.html)。
- 调用接口前，您需要提前获取到[地区和终端节点](https://developer.huaweicloud.com/endpoint)。
 
#### 约束限制
- 实例在创建、变更规格、冻结、异常等状态下不能执行该操作。
- 创建的只读用户对public模式默认具有create和usage权限。
- 该接口只支持单个角色授权。
- 该接口不支持M兼容模式授权。
 
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=GaussDBforopenGauss&api=AllowDbRolePrivileges)中调试该接口。
#### URI
POST /v3.1/{project_id}/instances/{instance_id}/db-privilege
表1参数说明 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| project_id  | 是    | String | **参数解释：** 租户在某一Region下的项目ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-gaussdb/gaussdb_api_196.html)。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字组成，且长度为32个字符。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| instance_id | 是    | String | **参数解释：** 实例ID，此参数是用户创建实例的唯一标识。请参考[查询数据库实例列表 - QueryingDBInstances](https://support.huaweicloud.com/api-gaussdb/gaussdb_api_328.html)接口获取实例ID。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字组成，且长度为36个字符。 **默认取值** **：** 不涉及。 |
   
#### 请求消息
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** 用户Token。 通过调用IAM服务[获取用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)接口获取。 请求响应成功后在响应消息头中包含的"X-Subject-Token"的值即为Token值。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值** **：** 不涉及。 |
| X-Language   | 否    | String | **参数解释：** 指定接口返回信息的语言类型。 **约束限制：** 不涉及。 **取值范围：** - **zh-cn**：中文  - **en-us**：英文   **默认取值** **：** **en-us**                     |
   
表3参数说明 
| 名称      | 是否必选 | 参数类型   | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| db_name | 是    | String | **参数解释：** 数据库名称。 **约束限制** **：** 不能使用模板库，且是已存在的数据库名称。 模板库包括postgres， template0 ，template1。 **取值范围：** 字符串长度1～63个字符，由字母、数字或下划线组成。 **默认取值：** 不涉及。 |
| user    | 是    | Object | **参数解释：** 角色权限信息。详情请参见表[表3 user字段数据结构说明]。 **约束限制** **：** 不涉及。                                                                                                                                                                                                                                                                                                         |
   
 表4user字段数据结构说明 
| 名称                        | 是否必选 | 参数类型    | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| name                      | 是    | String  | **参数解释：** 数据库角色名称。 **约束限制** **：** 不能使用系统用户或角色，且名称必须存在。 系统用户/角色包括"rdsAdmin","rdsMetric", "rdsBackup", "rdsRepl", "root"。 **取值范围：** 字符串长度1～63个字符，由字母、数字或下划线组成。 **默认取值：** 不涉及。                                                                                                                         |
| readonly                  | 是    | Boolean | **参数解释：** 数据库权限。 **约束限制** **：** 不涉及。 **取值范围：** - true：只读。  - false：可读可写。   **默认取值：** 不涉及。 |
| schema                    | 是    | String  | **参数解释：** SCHEMA名称。 **约束限制** **：** 不能和模板库以及系统内schema重名，且schema名称必须存在。 模板库包括postgres， template0 ，template1, 系统内schema包括public，information_schema。 **取值范围：** 字符串长度1～63个字符，由字母、数字或下划线组成。 **默认取值：** 不涉及。                                                                                                                                                                                                            |
| default_privilege_grantee | 否    | String  | **参数解释：** 数据库用户/角色名称。 该字段的含义是将此用户/角色的权限授予给name字段指定的角色，通过readonly字段判断是否授予只读权限。 **约束限制** **：** 不能和系统用户/角色名称相同，且用户/角色名称必须存在，系统用户/角色包括"rdsAdmin"," rdsMetric", "rdsBackup", "rdsRepl", "root"。 **取值范围：** 字符串长度1～63个字符，由字母、数字或下划线组成。 **默认取值：** 不涉及。                                                                                     |
   
#### 请求示例
设置数据库角色权限。
```
POST https://gaussdb-opengauss.cn-north-1.myhuaweicloud.com/v3.1/0483b6b16e954cb88930a360d2c4e663/instances/{instance_id}/db-privilege
{ 
  "db_name" : "gaussdb_test", 
  "user" : { 
     "name" : "rds", 
     "schema" : "rds001", 
     "readonly" : false ,
     "default_privilege_grantee": "user"
   } 
 
}
```
#### 响应示例
无。
#### 状态码
- 正常 200
  
- 异常 请参见[状态码](https://support.huaweicloud.com/api-gaussdb/gaussdb_api_194.html)。
  
 
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-gaussdb/gaussdb_api_195.html)。
