列级权限
语法格式
授予列级权限
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}]...
说明:
列级权限只包括
SELECT
与UPDATE
操作权限,且必须指定可操作的对象名,对象类型只能是表或视图。
参数说明
operation
:表示操作类型,包含DDL、DML类型,如CREATE
、ALTER
、DROP
、INSERT
、DELETE
、UPDATE
、SELECT
等。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;