2 回答
TA贡献1796条经验 获得超7个赞
如果不加,会出现像下面这种样子的错误。
消息 4611,级别 16,状态 1,第 1 行
若要撤消或拒绝可授予的特权,请指定 CASCADE 选项。
原因:
因为 U5可以转让insert权限
也就是以前执行的是:
GRANT insert on sc TO u5 With Grant Option
那么这个 u5 用户登录以后。
可以
GRANT insert on sc TO 其它的用户。
revoke insert
on sc
from u5 cascade
目的是把 给 u5 的权限回收回来, 同时把 u5 授权给其他用户的权限,也回收。
下面以一个例子来演示:
我的数据库上面,有 A 与 B , 两个用户。
我首先用管理员帐户,执行
GRANT SELECT ON Goods TO A With Grant Option
然后我用 A 用户登录。
执行了
1> GRANT SELECT ON Goods TO B With Grant Option
2> go
也就是 A 又给B 授权,允许B访问 Goods表,且还能授权给别人。
现在回到管理员帐户上
执行
REVOKE SELECT ON Goods FROM A CASCADE
从而把 A 的权限收回, 同时也把 A 给 B赋 的权限也收回。
那么现在 A 和 B 都没有权限访问 Goods 表了。
假如没有 cascade 连带删除的话,那么管理员把 A 的权限收回了。 但是 B还有权限。B还可以再把权限给 A,还可以给 C,D,E,F,G。
没有 cascade 的话,管理员要累死的。
TA贡献1816条经验 获得超6个赞
系统权限不会被级联回收。
对象权限会被级联回收。
例如:
收回用户li对表employee的查询权限,同时级联收回li授予其他用户的该权限。
SQL语句为:
WITH CHECK OPTION select ON TABLE employee FROM li CASCADE
- 2 回答
- 0 关注
- 740 浏览
添加回答
举报