【发布时间】:2017-01-28 11:03:37
【问题描述】:
我对以下两个案例有点困惑,虽然我知道结果,但我不太相信它背后的原因。需要数据库专家的帮助。
(说)角色 ROLE1 与 USER1 和 USER2 一起由 dba 创建
connect /as sysdba
create user USER1 identified by xyz;
create user USER2 identified by abc;
create role ROLE1;
案例 1:
-
在没有管理员选项的情况下向 ROLE1 授予了“选择任何表”权限
connect /as sysdba grant select any table to ROLE1; -
使用管理员选项将 ROLE1 授予 USER1
connect /as sysdba grant ROLE1 to USER1 with admin option; -
USER1 现在可以将“选择任何权限”授予其他用户吗?
connect USER1/xyz grant select any table to USER2;
我得到了 ORA-01031:这里的权限不足错误,这意味着它不是正确的方法。
案例 2:
-
使用管理员选项向 ROLE1 授予“选择任何表”权限
connect /as sysdba grant select any table to ROLE1 with admin option; -
将 ROLE1 授予 USER1,无论您授予它是带管理员选项还是不带管理员选项
connect /as sysdba grant ROLE1 to USER1; -
USER1 现在可以将“选择任何权限”授予其他用户吗?
connect USER1/xyz grant select any table to USER2;
这可以完美运行而不会报告任何错误。
任何人都可以帮助理解为什么 CASE2 有效,为什么 CASE1 无效?
【问题讨论】:
标签: sql database oracle database-security