更新时间:2023-11-27 GMT+08:00

数据赋权(用户)(废弃)

功能介绍

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

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

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

当前接口已废弃,不推荐使用。

URI

  • URI格式:

    PUT /v1.0/{project_id}/user-authorization

  • 参数说明
    表1 URI参数

    参数名称

    是否必选

    参数类型

    说明

    project_id

    String

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

请求消息

表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"]

表3 privileges参数

参数名称

是否必选

参数类型

说明

object

String

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

  • “databases.数据库名”,数据库下面的所有数据都将被共享。
  • “databases.数据库名.tables.表名”,指定的表的数据将被共享。
  • “databases.数据库名.tables.表名.columns.列名”,指定的列将被共享。
  • “jobs.flink.flink作业ID”,指定的作业将被共享。
  • “groups.程序包组名”,指定的程序包组将被共享。
  • “resources.程序包名”,指定程序包将被共享。

    示例值:databases.db1.tables.tb2.columns.column1。

privileges

Array of Strings

待赋权,回收或更新的权限列表。具体支持的权限列表详细可以参考数据权限列表。示例值:["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

内部服务器错误。

错误码

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