聊聊Oracle Default Role
作者:网络转载 发布时间:[ 2014/12/16 14:32:44 ] 推荐标签:数据库 Oracle 权限
3、相关权限变化
如果角色对象底层权限发生变化,已经授权对象有什么影响呢?
SQL> create role testrole ;
Role created
SQL> grant select on sics.cnu_environment to testrole;
Grant succeeded
SQL> grant testrole to test;
Grant succeeded
此时新角色testrole被授予为default role。
SQL> select * from dba_role_privs where GRANTEE='TEST';
GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE
------------------------------ ------------------------------ ------------ ------------
TEST RESOURCE NO YES
TEST SICSPCCGROLE NO YES
TEST SICSPCTBTRROLE NO YES
TEST TESTROLE NO YES
TEST CONNECT NO YES
TEST SICSPCTBCGROLE NO YES
TEST SICSPCTRROLE NO YES
7 rows selected
Testrole底层发生变化。
SQL> grant select on scott.emp to testrole;
Grant succeeded
角色授权关系没有变化。
SQL> select * from dba_role_privs where GRANTEE='TEST';
GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE
------------------------------ ------------------------------ ------------ ------------
TEST RESOURCE NO YES
TEST SICSPCCGROLE NO YES
TEST SICSPCTBTRROLE NO YES
TEST TESTROLE NO YES
TEST CONNECT NO YES
TEST SICSPCTBCGROLE NO YES
TEST SICSPCTRROLE NO YES
7 rows selected
一些相关实验也证明,对于角色层面权限组的变化,不会影响到用户与角色的关系。
4、Default Role设置副效应
Default Role是可以单独设置的,但是一定要注意,一旦使用Default Role显示设置,会有一些副效应出现。
SQL> alter user test default role connect;
User altered
使用default role方法设置用户test为connect,之后观察视图。
SQL> select * from dba_role_privs where GRANTEE='TEST';
GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE
---------- ------------------------------ ------------ ------------
TEST RESOURCE NO NO
TEST SICSPCCGROLE NO NO
TEST SICSPCTBTRROLE NO NO
TEST TESTROLE NO NO
TEST CONNECT NO YES
TEST SICSPCTBCGROLE NO NO
TEST SICSPCTRROLE NO NO
7 rows selected
注意,除了设置默认角色的connect之后,其他test用户角色都成为非默认角色。也是说:一旦进行显示设置,其他角色自动设置为非默认角色。

sales@spasvo.com