暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

深入Oracle:赋权深入解析with grant与with admin区别

博森瑞 2021-06-24
1917

1、with admin option 用于系统权限授权,with grant option 用于对象授权。

2、给一个用户授予系统权限带上with admin option 时,此用户可把此系统权限授予其他用户或角色,但收回这个用户的系统权限时,这个用户已经授予其他用户或角色的此系统权限不会因传播无效,如授予A系统权限create session with admin option,然后A又把create session权限授予B,但管理员收回A的create session权限时,B依然拥有create session的权限,但管理员可以显式收回B create session的权限,即直接revoke create session from B.

with grant option用于对象授权时,被授予的用户也可把此对象权限授予其他用户或角色,不同的是但管理员收回用with grant option授权的用户对象权限时,权限会因传播而失效,如:grant select on 表名 to A with grant option;,A用户把此权限授予B,但管理员收回A的权限时,B的权限也会失效,但管理员不可以直接收回B的SELECT ON TABLE 权限。

执行授权语句报错(ora-01031,ora-01929)时,可参考一下。


相同点:

两个都可以既可以赋予user 权限时使用,也可以在赋予role 时用
GRANT CREATE SESSION TO emi WITH ADMIN OPTION;
GRANT CREATE SESSION TO role WITH ADMIN OPTION;
GRANT role1 to role2 WITH ADMIN OPTION;
GRANT select ON customers1 TO bob WITH GRANT OPTION;
GRANT select ON customers1 TO hr_manager(role) WITH GRANT OPTION;

两个受赋予者,都可以把权限或者role 再赋予other users

两个option 都可以对DBA 和APP ADMIN 管理带来方便性,但同时,都带来不安全的因素。


不同点:
with admin option 只能在赋予 system privilege 的时使用
with grant option 只能在赋予 object privilege 的时使用

撤消带有admin optionsystem privileges 时,连带的权限将保留。


例如:
1. DBA 给了CREATE TABLE 系统权限给JEFF WITH ADMIN OPTION
2. JEFF CREATES TABLE
3. JEFF grants the CREATE TABLE 系统权限给EMI
4. EMI CREATES A table
5. DBA 撤消CREATE TABLE 系统权限从JEFF

结果:
JEFF‘S TABLE 依然存在,但不能创建新的TABLE 了
EMI’S TABLE 依然存在,他还保留着CREATE TABLE 系统权限。

撤消带有grant optionobject privileges 时,连带的权限也将撤消。


例如:
1. JEFF 给了SELECT object privileges 在EMP 上 WITH ADMIN OPTION
2. JEFF 给了SELECT 权限在EMP 上 TO EMI
3. 后来,撤消JEFF的SELECT 权限

结果:
EMI 的权限也被撤消了

推荐阅读


最后再次感谢大家一如既往的支持与鼓励


      
快来点“在看”
文章转载自博森瑞,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论