ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 不能把role 给它本身

不能把role 给它本身

原创 Linux操作系统 作者:startforever 时间:2013-07-04 15:46:22 0 删除 编辑
角色role)是系统权限(system privilege)和对象权限(object privilege)的集合。Oracle为了防止角色间的循环授予,自带了检测方法。演示在此。

1.清理测试环境
sys@ora10g> drop role role_secooler1;
sys@ora10g> drop role role_secooler2;
sys@ora10g> drop role role_secooler3;

2.准备测试环境
sys@ora10g> create role role_secooler1;

Role created.

sys@ora10g> create role role_secooler2;

Role created.

sys@ora10g> create role role_secooler3;

Role created.

3.测试角色的循环授予
sys@ora10g> grant role_secooler1 to role_secooler2;

Grant succeeded.

sys@ora10g> grant role_secooler2 to role_secooler3;

Grant succeeded.

sys@ora10g> grant role_secooler3 to role_secooler1;
grant role_secooler3 to role_secooler1
*
ERROR at line 1:
ORA-01934: circular role grant detected

OK,此时Oracle已经检测到系统中出现了角色循环授予的情况,在此以“ORA-01934”错误告知。
即便是在角色本身并未包含任何权限时这种循环授予也是被禁止的。

4.小结
在系统中使用角色(role)简化权限管理的同时一定要头脑清醒,不要引入过多的角色和过于复杂的角色。以简单、够用、方便为原则即可。
测试:也不能把角色给它自己

SQL> create role role1 identified by role1;
Role created.
SQL> grant role1 to role1;
grant role1 to role1
*
ERROR at line 1:
ORA-01934: circular role grant detected

SQL>
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28743704/viewspace-765486/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-03-22

  • 博文量
    106
  • 访问量
    65176