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用户角色都成为非默认角色。也是说:一旦进行显示设置,其他角色自动设置为非默认角色。