一、何为角色?
角色。角色是一
二、系统预定义角色
角色所包含
sql>select
查询RESOURCE的权限
SQL>
select * from role_sys_privs where role='RESOURCE';
ROLE PRIVILEGE ADMIN_OPTION
------------------------------ ---------------------------------------- ------------
RESOURCE CREATE SEQUENCE NO
RESOURCE CREATE TRIGGER NO
RESOURCE CREATE CLUSTER NO
RESOURCE CREATE PROCEDURE NO
RESOURCE CREATE TYPE NO
RESOURCE CREATE OPERATOR NO
RESOURCE CREATE TABLE NO
RESOURCE CREATE INDEXTYPE NO
8 rows selected
1.CONNECT,
这些预定义角色主要是
2.DELETE_C
这些角色主要用于访问
3.EXP_FULL
这两个角色用于数据导
4.AQ_USER_
AQ:Advance
5.SNMPAGEN
用于oracle enterprise
6.RECOVERY
用于创建拥有恢复库的
三、建立和使用角色
建立角
CREATE ROLE role_name IDENTIFIED CREATE ROLE role_name IDENTIFIED CREATE ROLE role_name IDENTIFIED |
缺省情况下建立的角色
SET ROLE role_name IDENTIFIED |
GRANT ROLE(或syst |
对象权限被授予 WITH GRANT OPTION,可以传递.
sql>alter user user1 default role role1;
sql>alter user user1 default role all except role1;
删除角色
sql>drop role role1;
四、角色相关的视图
一. 概述
与权限,角色相关的视
DBA_SYS_PR
USER_SYS_P
SESSION_PR
ROLE_SYS_P
注意: 要以SYS用户登陆查
ROLE_ROLE_
SESSION_RO
USER_ROLE_
另外还有针对表的访问
TABLE_PRIV
ALL_TAB_PR
ROLE_TAB_P
...
二. Examples
1. 查询当前用户所拥有的
Select * from session_pr
2. 查询某个用户被赋予的
可以有多种方式
Select * from user_sys_p
或者: select * from DBA_SYS_PR
(需要当前用户拥有D
3. 查询当前用户被授予的
1. Select * from SESSION_RO
说明: 这个查询会返回当前用
角色. 例如将DBA角色授予
exp_full_d
2. Select * from USER_ROLE_
4. 查询某一角色被赋予的
Select Privilege from ROLE_SYS_P
输入 role='CONN
输出:
PRIVILEGE
----------
ALTER SESSION
CREATE CLUSTER
CREATE DATABASE LINK
CREATE SEQUENCE
CREATE SESSION
CREATE SYNONYM
CREATE TABLE
CREATE VIEW
5. 查询当前角色被授予的
Select GRANTED_RO
输入 role= 'DBA'
输出:
GRANTED_RO
----------
DELETE_CAT
EXECUTE_CA
EXP_FULL_D
IMP_FULL_D
PLUSTRACE
SELECT_CAT
说明: PLUSTRACE这