授权操作者:数据库管理员、数据库对象创建者(即属主Owner)、拥有该权限的用户
回收操作者:数据库管理员或其他授权者

授权 GRANT

GRANT语句的一般格式:

GRANT <权限>[,<权限>]... 
ON <对象类型> <对象名>[,<对象类型> <对象名>]TO <用户>[,<用户>]...
[WITH GRANT OPTION];

WITH GRANT OPTION子句
指定:可以再授予
没有指定:不能传播

例1、把对某表的某个权限授给某个用户

// 把查询Student表权限授给用户U1
GRANT SELECT ON TABLE Student TO U1;

例2、把多个表的全部权限授予多个用户

// 把对Student表和Course表的全部权限授予用户U2和U3
GRANT ALL PRIVILIGES ON TABLE Student,Course TO U2,U3;

例3、把某表的某个权限授予所有用户

// 把对表SC的查询权限授予所有用户
GRANT SELECT ON TABLE SC TO PUBLIC;

例4、把某表中某列的某个权限授权给某个用户

// 把Student表修改学生学号的权限授给用户U4
GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4;

例5、允许授权传播

// 把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户     
GRANT INSERT ON TABLE SC TO U5
WITH GRANT OPTION;

权限回收 REVOKE

REVOKE语句的一般格式为:

REVOKE <权限>[,<权限>]... 
ON <对象类型> <对象名>[,<对象类型><对象名>]FROM <用户>[,<用户>]...[CASCADE | RESTRICT];

例1、收回所有用户的权限

// 收回所有用户对表SC的查询权限
REVOKE SELECT 
ON TABLE SC 
FROM PUBLIC;

例2、收回某用户对某表中某列的某个权限

// 把用户U4修改学生学号的权限收回
REVOKE UPDATE(Sno)
ON TABLE Student 
FROM U4;

例3、具有“继续授权”许可的用户的权限收回
CASCADE 级联

// 把用户U5对SC表的INSERT权限收回
REVOKE INSERT 
ON TABLE SC 
FROM U5 CASCADE ;

U5 用户的 insert 权限是“允许继续授权”的 insert 权限,在收回该权限时需要使用 cascade ,否则拒绝执行
同时,收回 U5 用户的该权限时,那些直接或间接从 U5 用户得到该权限的用户的权限也会被收回;如果这些用户还从别处得到了该权限,则不会被收回

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐