amwdnuff 发表于 2010-8-6 20:35

角色管理

角色管理


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                              NOTESTROLE1
Y                              NOROLE1
SQL> conn y/y
已连接。
SQL> select count(*) from scott.dept;
select count(*) from scott.dept
                           *
第 1 行出现错误:
ORA-00942: 表或视图不存在

hy_sdw 发表于 2010-8-6 20:51

如何角色管理
页: [1]
查看完整版本: 角色管理