更新时间:2025-09-23 GMT+08:00

修改数据库对象权限

功能介绍

修改数据库对象权限。

调用方法

请参见如何调用API。

URI

POST /v1/{project_id}/clusters/{cluster_id}/db-manager/authority

表1 路径参数

参数

是否必选

参数类型

描述

project_id

是

String

参数解释:

项目ID。获取方法请参见获取项目ID。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

cluster_id

是

String

参数解释:

集群ID。获取方法请参见获取集群ID。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

请求参数

表2 请求Body参数

参数

是否必选

参数类型

描述

type

是

String

参数解释:

对象类型。

取值范围:

DATABASE、SCHEMA、TABLE、VIEW、COLUMN、FUNCTION、SEQUENCE、NODEGROUP、ROLE。

is_grant

是

Boolean

参数解释:

是否授权操作。

取值范围:

不涉及。

grant_list

否

Array of Grant objects

参数解释:

授权列表。is_grant为true时必填。

取值范围:

不涉及。

revoke_list

否

Array of Revoke objects

参数解释:

撤销权限列表。is_grant为false时必填。

取值范围:

不涉及。

role_list

是

Array of strings

参数解释:

被授权角色列表。

取值范围:

不涉及。

object_list

是

Array of strings

参数解释:

权限所属对象列表。

取值范围:

不涉及。

all_object

否

Boolean

参数解释:

schema下所有数据库对象权限,默认false。

取值范围:

不涉及。

cascade

否

Boolean

参数解释:

撤销权限是否级联撤销,默认true。

取值范围:

不涉及。

database

是

String

参数解释:

数据库名称。

取值范围:

不涉及。

schema

否

String

参数解释:

模式名称。

取值范围:

不涉及。

table

否

String

参数解释:

表名。

取值范围:

不涉及。

表3 Grant

参数

是否必选

参数类型

描述

permission

是

String

参数解释:

权限名称,根据不同数据库对象类型,拥有权限不同。

取值范围:

  • database:CREATE | CONNECT | TEMPORARY | TEMP ALL PRIVILEGES

  • schema:CREATE | USAGE | ALTER | DROP ALL PRIVILEGES

  • table:SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER | ANALYZE | ANALYSE | VACUUM | ALTER | DROP ALL PRIVILEGES

  • view:SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER | ANALYZE | ANALYSE | VACUUM | ALTER | DROP ALL PRIVILEGES

  • column:SELECT | INSERT | UPDATE | REFERENCES ALL PRIVILEGES

  • function:EXECUTE ALL PRIVILEGES

  • sequence:SELECT | UPDATE | USAGE ALL PRIVILEGES

  • nodegroup:CREATE | USAGE | COMPUTE ALL PRIVILEGES

  • role:role_name(角色名称)

grant_with

是

Boolean

参数解释:

是否包含授权选项。

取值范围:

不涉及。

表4 Revoke

参数

是否必选

参数类型

描述

permission

是

String

参数解释:

权限名称,根据不同数据库对象类型,拥有权限不同。

取值范围:

  • database:CREATE | CONNECT | TEMPORARY | TEMP ALL PRIVILEGES

  • schema:CREATE | USAGE | ALTER | DROP ALL PRIVILEGES

  • table:SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER | ANALYZE | ANALYSE | VACUUM | ALTER | DROP ALL PRIVILEGES

  • view:SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER | ANALYZE | ANALYSE | VACUUM | ALTER | DROP ALL PRIVILEGES

  • column:SELECT | INSERT | UPDATE | REFERENCES ALL PRIVILEGES

  • function:EXECUTE ALL PRIVILEGES

  • sequence:SELECT | UPDATE | USAGE ALL PRIVILEGES

  • nodegroup:CREATE | USAGE | COMPUTE ALL PRIVILEGES

  • role:role_name(角色名称)

revoke_with

是

Boolean

参数解释:

是否仅移除授权选项。

取值范围:

不涉及。

响应参数

状态码:200

表5 响应Body参数

参数

参数类型

描述

view_sql

Array of strings

参数解释:

sql列表。

取值范围:

不涉及。

请求示例

修改集群ID为“a89aea88-7ea2-40bd-8ac8-8b93e169e5d6”的数据库对象权限,即对gaussdb数据库下表table1和table2进行“SELECT”授权,授权角色为user1和user2,模式为public。

POST https://{Endpoint}/v1/0536cdee2200d5912f7cc00b877980f1/clusters/a89aea88-7ea2-40bd-8ac8-8b93e169e5d6/db-manager/authority

{
  "type" : "table",
  "is_grant" : true,
  "grant_list" : [ {
    "permission" : "SELECT",
    "grant_with" : true
  } ],
  "role_list" : [ "user1", "user2" ],
  "object_list" : [ "table1", "table2" ],
  "database" : "gaussdb",
  "schema" : "public"
}

响应示例

状态码:200

修改成功。

{
  "view_sql" : [ "GRANT SELECT ON TABLE public.test_t1 TO user1 WITH GRANT OPTION;", "GRANT UPDATE ON TABLE public.test_t1 TO user1 ;" ]
}

状态码

状态码

描述

200

修改成功。

400

请求错误。

401

鉴权失败。

403

没有操作权限。

404

找不到资源。

500

服务内部错误。

503

服务不可用。