
# 数据赋权（用户或项目） - RunAuthorizationAction
#### 功能介绍
该API用于将数据库或数据表的数据权限赋给指定的其他用户或项目。
被赋权用户所在用户组的所属区域需具有Tenant Guest权限。
赋权给项目时，只可以赋权给相同租户下的相同区域的项目。
关于Tenant Guest权限的介绍和开通方法，详细参见[权限策略](https://support.huaweicloud.com/usermanual-permissions/iam_01_0001.html)和《统一身份认证服务 用户指南》中的[创建用户组](https://support.huaweicloud.com/usermanual-iam/iam_03_0001.html)。
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=DLI&api=RunAuthorizationAction)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限及授权项说明](https://support.huaweicloud.com/api-dli/dli_02_0375.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项 Action | 访问级别 Access Level | 资源类型（\*为必须） Resource Type (\*: required) | 条件键 Condition Key | 别名 Alias | 依赖的授权项 Dependencies |
  |:---|:---|:---|:---|:---|:---|
  | dli::operateAuth                        | permission_management                           | -                                                                      | -                                              | -                                      | -                                                 |
     
  
 
#### URI
- URI格式： PUT /v1.0/{project_id}/authorization
  
- 参数说明
  表1URI参数 
  | 参数名称       | 是否必选 | 参数类型   | 说明                                                                                                                                                                                                                                                                                                                                                                                 |
  |:---|:---|:---|:---|
  | project_id | 是    | String | **参数解释：** 项目编号，用于资源隔离。获取方式请参考[获取项目ID](https://support.huaweicloud.com/api-dli/dli_02_0183.html)。 **约束限制：** 无 **取值范围：** 只能由英文字母和数字组成，且长度为\[1-64\]个字符。 **默认取值：** 无 |
     
  
 
#### 请求消息
表2请求参数 
| 参数         | 是否必选 | 参数类型             | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| user_name  | 否    | String           | **参数解释：** 被赋权的用户名称，该用户将有权访问指定的数据库或数据表，被收回或者更新访问权限。 **约束限制：** 无 **取值范围：** 长度限制：256个字符以内。 **默认取值：** 无                                                                                                                                                                                                                                                                        |
| projectId  | 否    | String           | **参数解释：** 被赋权的项目ID，数据赋权给其他项目后，该项目的管理员将有权访问指定的数据库或数据表。 **约束限制：** 无 **取值范围：** 无 **默认取值：** 无                                                                                                                                                                                                                                                                            |
| action     | 是    | String           | **参数解释：** 指定赋权或回收。 - grant：赋予权限  - revoke：回收权限  - update：更新权限   **约束限制：** 当用户同时拥有grant和revoke权限的时候才有权限使用update操作。 **取值范围：** 无 **默认取值：** 无 |
| privileges | 是    | Array of objects | **参数解释：** 赋权信息。具体参数请参考[表3]。 **约束限制：** 无 **取值范围：** 无 **默认取值：** 无                                                                                                                                                                                                                                   |
   
 表3privileges参数 
| 参数         | 是否必选 | 参数类型             | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| object     | 是    | String           | **参数解释：** 被赋权的数据对象。 **约束限制：** 命名方式为： - "databases.数据库名"，则数据库下面的所有数据都将被共享。  - "databases.数据库名.tables.表名", 指定的表的数据将被共享。  - "databases.数据库名.tables.表名.columns.列名"，指定的列将被共享。  - "edsconnections.连接ID"，赋予某增强型跨源连接的使用权限。   **取值范围：** 无 **默认取值：** 无 |
| privileges | 是    | Array of strings | **参数解释：** 待赋权，回收或更新的权限列表。 **约束限制：** 若"action"为"update"，更新列表为空，则表示回收用户在该数据库或表的所有权限。 **取值范围：** 无 **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
#### 响应消息
表4响应参数 
| 参数名称       | 是否必选 | 参数类型    | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| is_success | 否    | Boolean | **参数解释：** 执行请求是否成功。 **约束限制：** 不涉及 **取值范围：** - "true"表示请求执行成功。  - "false"表示请求执行失败。   **默认取值：** 不涉及 |
| message    | 否    | String  | **参数解释：** 系统提示信息，执行成功时，信息可能为空。 **约束限制：** 无 **取值范围：** 无 **默认取值：** 无                                                                                                                                                                              |
   
#### 请求示例
- 赋予某项目（项目ID：0732e57c728025922f04c01273686950）数据库db1的查询权限、数据表db1.tbl的删除权限、数据表指定列db1.tbl.column1的查询权限。
  ```
  {
    "projectId": "0732e57c728025922f04c01273686950",
    "action": "grant",
    "privileges": [
      {
        "object": "databases.db1.tables.tb2.columns.column1",
        "privileges": ["SELECT"]
       },
      {
        "object": "databases.db1.tables.tbl",
        "privileges": ["DROP_TABLE"]
      },
     {
     "object": "databases.db1",
     "privileges": ["SELECT"]
     }
   ]
  }
  ```
  
- 赋予某用户dlitest的数据库dbtest的查询数据权限。
  ```
  {
      "action": "grant",
      "privileges": [
          {
              "object": "databases.dbtest",
              "privileges": [
                  "SELECT"
              ]
          }
      ],
      "user_name": "dlitest"
  }
  ```
  
 
#### 响应示例
```
{
  "is_success": true,
  "message": "" 
}
```
#### 状态码
状态码如[表5]所示。
 表5状态码 
| 状态码 | 描述       |
|:---|:---|
| 200 | 授权成功。    |
| 400 | 请求错误。    |
| 500 | 内部服务器错误。 |
   
#### 错误码
调用接口出错后，将不会返回上述结果，而是返回错误码和错误信息，更多介绍请参见[错误码](https://support.huaweicloud.com/api-dli/dli_02_0056.html)。
