ITPub博客

首页 > 数据库 > Oracle > 【role】角色不可循环赋予(ORA-01934)

【role】角色不可循环赋予(ORA-01934)

原创 Oracle 作者:OCMU联盟 时间:2010-12-18 22:43:07 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)简化权限管理的同时一定要头脑清醒,不要引入过多的角色和过于复杂的角色。以简单、够用、方便为原则即可。

Good luck.

secooler
10.12.18

-- The End --

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

请登录后发表评论 登录
全部评论
OCM联盟( Oracle Certified Master Union)是由侯圣文(ACE总监)发起的一个公益组织,旨在为每一个OCM大师提供一个可以继续展示自己才华,技术和实力的平台。

注册时间:2007-05-27

  • 博文量
    799
  • 访问量
    8407000