数据库 之授权与回收

授权操作者:数据库管理员、数据库对象创建者(即属主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 用户得到该权限的用户的权限也会被收回;如果这些用户还从别处得到了该权限,则不会被收回

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值