Skip to content

列级权限

语法格式

授予列级权限

sql
GrantStmt::=
    GRANT operation [,operation]... ( name_list ) ON [TABLE] name_space TO grantee_list [WITH GRANT OPTION]

回收列级权限

sql
RevokeStmt::=
    REVOKE GRANT OPTION FOR operation_commalist ( name_list ) ON name_space FROM grantee_list
|   REVOKE operation_commalist ( name_list ) ON [TABLE] name_space FROM grantee_list

权限信息

sql
operation::=
    {SELECT | INSERT | UPDATE | DELETE | EXECUTE | REFERENCES | ALTER | DROP | INDEX | TRIGGER | VACUUM}

grantee_list::=
    {ROLE  UserId | UserId} [{,} {ROLE  UserId | UserId}]...

说明:

列级权限只包括SELECTUPDATE操作权限,且必须指定可操作的对象名,对象类型只能是表或视图。

参数说明

  • operation:表示操作类型,包含DDL、DML类型,如CREATEALTERDROPINSERTDELETEUPDATESELECT等。
  • name_list:授予/回收可操作的列名。
  • name_space:此处指授予/回收可操作的对象名,可为表名或视图名。
  • grantee_list:授予/回收权限的用户名或角色名。

示例

授予用户TU1针对表TEST_COL_PRE的列ID2的查询权限与列ID的变更权限。

sql
CREATE TABLE TEST_COL_PRE(ID INT,ID2 INT,ID3 INT);
CREATE USER TU1 IDENTIFIED BY 'test_123@';
GRANT SELECT(ID2) ON TEST_COL_PRE TO TU1;
GRANT UPDATE(ID) ON TEST_COL_PRE TO TU1;