签到天数: 2592 天 连续签到: 6 天 [LV.Master]至尊海神IIIIII
|
角色管理
1.角色的四种方式:
2.max_enabled_roles限制会话中可以enable的数量,因为enable会话占用的是 UGA
3.角色的传递使用with admin option,有该权限的用户可以自己撤销该角色
4.set role none在会话中将用户角色清空,退出会话即恢复默认角色
实验一:有with admin option可以自己撤销
SQL> grant security_admin to security_admin_user with admin option;
授权成功。
SQL> conn security_admin_user/admin
已连接。
SQL> revoke security_admin from security_admin_user;
撤销成功
实验二:创建角色,不管加不加口令验证,赋给用户后都是默认权限
当用alter....default role设定了默认权限后,只能在会话中用set role使非默认权限生效,生效只在会话中。
SQL> create role role1 identified by role1;
角色已创建。
SQL> grant select on scott.dept to role1;
授权成功。
SQL> grant role1 to y;
授权成功。
SQL> select grantee,default_role,granted_role from dba_role_privs where
grantee='Y';
GRANTEE DEF GRANTED_ROLE
------------------------------ --- ------------------------------
Y YES ROLE2
Y YES CONNECT
Y YES TESTROLE1
Y YES ROLE1
SQL> conn y/y
已连接。
SQL> select count(*) from scott.dept;
COUNT(*)
----------
4
SQL> conn sys/oracle as sysdba
已连接。
SQL> alter user y default role connect,role2;
用户已更改。
SQL> select grantee,default_role,granted_role from dba_role_privs where grantee
GRANTEE DEF GRANTED_ROLE
------------------------------ --- ------------------------------
Y YES ROLE2
Y YES CONNECT
Y NO TESTROLE1
Y NO ROLE1
SQL> conn y/y
已连接。
SQL> select count(*) from scott.dept;
select count(*) from scott.dept
*
第 1 行出现错误:
ORA-00942: 表或视图不存在 |
<
|