
# 数据赋权（用户）（废弃）
#### 功能介绍
该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)。
![](https://support.huaweicloud.com/api-dli/public_sys-resources/note_3.0-zh-cn.png)
当前接口已废弃，不推荐使用。
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=DLI&api=ChangeAuthorization)中调试该接口。
#### URI
- URI格式： PUT /v1.0/{project_id}/user-authorization
  
- 参数说明
  表1URI参数 
  | 参数名称       | 是否必选 | 参数类型   | 说明                                                                                     |
  |:---|:---|:---|:---|
  | project_id | 是    | String | 项目编号，用于资源隔离。获取方式请参考[获取项目ID](https://support.huaweicloud.com/api-dli/dli_02_0183.html)。 |
     
  
 
#### 请求消息
表2请求参数 
| 参数名称       | 是否必选 | 参数类型             | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| user_name  | 是    | String           | 被赋权的用户名称，该用户将有权访问指定的数据库或数据表，被收回或者更新访问权限。示例值：user2。                                                                                                                                                                                                                                                                                                                                                                                                                   |
| action     | 是    | String           | 指定赋权或回收。值为：grant，revoke或update。示例值：grant。 - grant：赋权。  - revoke：回收权限。  - update：清空原来的所有权限，赋予本次提供的权限数组中的权限。   说明： 当用户同时拥有grant和revoke权限的时候才有权限使用update操作。 |
| privileges | 是    | Array of Objects | 赋权信息。具体参数请参考[表3]。示例值： \[ {"object": "databases.db1.tables.tb2.columns.column1","privileges": \["SELECT"\]},"object": "databases.db1.tables.tbl","privileges": \[ "DROP_TABLE"\]                                                                                                                                                                                                                    |
   
 表3privileges参数 
| 参数名称       | 是否必选 | 参数类型             | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| object     | 是    | String           | 被赋权的数据对象，命名方式为： - "databases.数据库名"，数据库下面的所有数据都将被共享。  - "databases.数据库名.tables.表名"，指定的表的数据将被共享。  - "databases.数据库名.tables.表名.columns.列名"，指定的列将被共享。  - "jobs.flink.flink作业ID"，指定的作业将被共享。  - "groups.程序包组名"，指定的程序包组将被共享。  - "resources.程序包名"，指定程序包将被共享。 示例值：databases.db1.tables.tb2.columns.column1。    |
| privileges | 是    | Array of Strings | 待赋权，回收或更新的权限列表。具体支持的权限列表详细可以参考[数据权限列表](https://support.huaweicloud.com/sqlref-spark-dli/dli_08_0140.html)。示例值：\["SELECT"\]。 说明： 若"action"为"update"，更新列表为空，则表示回收用户在该数据库或表的所有权限。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
#### 响应消息
表4响应参数 
| 参数名称       | 是否必选 | 参数类型    | 说明                                |
|:---|:---|:---|:---|
| is_success | 否    | Boolean | 执行请求是否成功。"true"表示请求执行成功。示例值：true。 |
| message    | 否    | String  | 系统提示信息，执行成功时，信息可能为空。示例值：空。        |
   
#### 请求示例
赋予用户user2数据库db1的查询权限、数据表db1.tbl的删除权限、数据表指定列db1.tbl.column1的查询权限
```
{
  "user_name": "user2",
  "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"
      ]
    }
  ]
}
```
#### 响应示例
```
{
  "is_success": true,
  "message": "" 
}
```
#### 状态码
状态码如[表5]所示。
 表5状态码 
| 状态码 | 描述       |
|:---|:---|
| 200 | 授权成功。    |
| 400 | 请求错误。    |
| 500 | 内部服务器错误。 |
   
#### 错误码
调用接口出错后，将不会返回上述结果，而是返回错误码和错误信息，更多介绍请参见[错误码](https://support.huaweicloud.com/api-dli/dli_02_0056.html)。
