文档首页/ 数据湖探索 DLI/ API参考/ 权限相关API/ 数据赋权(用户或项目)
更新时间:2024-05-22 GMT+08:00

数据赋权(用户或项目)

功能介绍

该API用于将数据库或数据表的数据权限赋给指定的其他用户或项目。

被赋权用户所在用户组的所属区域需具有Tenant Guest权限。

赋权给项目时,只可以赋权给相同租户下的相同区域的项目。

关于Tenant Guest权限的介绍和开通方法,详细参见权限策略《统一身份认证服务 用户指南》中的创建用户组

URI

  • URI格式:

    PUT /v1.0/{project_id}/authorization

  • 参数说明
    表1 URI参数

    参数名称

    是否必选

    参数类型

    说明

    project_id

    String

    项目编号,用于资源隔离。获取方式请参考获取项目ID

请求消息

表2 请求参数

参数

是否必选

参数类型

说明

user_name

String

被赋权的用户名称,该用户将有权访问指定的数据库或数据表,被收回或者更新访问权限。

grant_project_id

String

被赋权的项目ID,数据赋权给其他项目后,该项目的管理员将有权访问指定的数据库或数据表。

action

String

指定赋权或回收。

  • grant:赋予权限
  • revoke:回收权限
  • update:更新权限
说明:

当用户同时拥有grant和revoke权限的时候才有权限使用update操作。

privileges

Array of objects

赋权信息。具体参数请参考表3

表3 privileges参数

参数

是否必选

参数类型

说明

object

String

被赋权的数据对象,命名方式为:

  • “databases.数据库名”,则数据库下面的所有数据都将被共享。
  • “databases.数据库名.tables.表名”, 指定的表的数据将被共享。
  • “databases.数据库名.tables.表名.columns.列名”,指定的列将被共享。
  • “edsconnections.连接ID”,赋予某增强型跨源连接的使用权限。

privileges

Array of strings

待赋权,回收或更新的权限列表。

说明:

“action”“update”,更新列表为空,则表示回收用户在该数据库或表的所有权限。

响应消息

表4 响应参数

参数名称

是否必选

参数类型

说明

is_success

Boolean

执行请求是否成功。“true”表示请求执行成功。

message

String

系统提示信息,执行成功时,信息可能为空。

请求示例

  • 赋予某项目(项目ID:0732e57c728025922f04c01273686950)数据库db1的查询权限、数据表db1.tbl的删除权限、数据表指定列db1.tbl.column1的查询权限。
    {
      "grant_project_id": "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

内部服务器错误。

错误码

调用接口出错后,将不会返回上述结果,而是返回错误码和错误信息,更多介绍请参见错误码