ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle 用户、角色、权限(系统权限、对象权限)的数据字典表

Oracle 用户、角色、权限(系统权限、对象权限)的数据字典表

原创 Linux操作系统 作者:chwang1984 时间:2011-07-12 18:49:55 0 删除 编辑

1 三者的字典表

1.1 用户

select * from dba_users;

select * from all_users;

select * from user_users;

1.2 角色

select * from dba_roles;

1.3 权限

分为系统权限与对象权限:

select * from system_privilege_map;

select * from table_privilege_map;

2 三者之间关系的字典表

这类关系字典表的表名后缀都包含"_privs"

2.1 用户与角色

用户拥有的角色:

select * from dba_role_privs;

select * from user_role_privs;

select * from role_role_privs;

user_role_privsrole_role_privs 都是dba_role_privs的子集.

dba_role_privsgrantee字段包括用户名与角色名.

user_role_privsusername字段包括操作用户的用户名.

role_role_privsrole字段只是角色名.

2.2 用户与权限

用户拥有的系统权限:

select * from dba_sys_privs;

select * from user_sys_privs;

用户拥有的对象权限:

select * from dba_tab_privs;

select * from all_tab_privs;

select * from user_tab_privs;

select * from dba_col_privs;

select * from all_col_privs;

select * from user_col_privs;

2.3 角色与权限

查询授出去的对象权限(通常是属主自己查)

select * from role_sys_privs;

select * from role_tab_privs;

3 其他

查询授出去的对象权限(通常是属主自己查)

select * from user_tab_privs_made;

select * from all_tab_privs_made;

用户拥有的对象权限

select * from user_tab_privs_recd;

select * from all_tab_privs_recd;

用户分配出去的列的对象权限

select * from user_col_privs_made;

select * from all_col_privs_made;

用户拥有的关于列的对象权限

select * from user_col_privs_recd;

select * from all_col_privs_recd;

 

关于unlimited tablespace权限的特殊性:

1. 系统权限unlimited tablespace是隐含dba, resource角色中的一个系统权限.

2. 系统权限unlimited tablespace不能被授予role, 可以被授予用户.

3. 系统权限unlimited tablespace不会随着resource, dba被授予role而授予给用户.

1 实验1

SQL> create user u1 identified by u1;

User created.

SQL> grant connect, resource to u1;

Grant succeeded.

SQL> select * from dba_role_privs a where a.grantee='U1';

GRANTEE GRANTED_ROLE ADM DEF

-------------------- -------------------- --- ---

U1 RESOURCE NO YES

U1 CONNECT NO YES

SQL> select * from dba_sys_privs a where a.grantee='U1';

GRANTEE PRIVILEGE ADM

-------------------- -------------------- ---

U1 UNLIMITED TABLESPACE NO

SQL> revoke unlimited tablespace from u1;

Revoke succeeded.

SQL> select * from dba_sys_privs a where a.grantee='U1';

no rows selected

2 实验2

SQL> create role r1;

Role created.

SQL> grant unlimited tablespace to r1;

ORA-01931: cannot grant UNLIMITED TABLESPACE to a role

不能受权给角色r1.

SQL> grant unlimited tablespace to u1;

Grant succeeded.

不能受权给用户u1.

3 实验3

SQL> revoke resource from u1;

Revoke succeeded.

SQL> grant resource to r1;

Grant succeeded.

SQL> grant r1 to u1;

Grant succeeded.

SQL> select * from dba_role_privs a where a.grantee='U1';

GRANTEE GRANTED_ROLE ADM DEF

-------------------- -------------------- --- ---

U1 R1 NO YES

U1 CONNECT NO YES

SQL> select * from dba_sys_privs a where a.grantee='U1';

no rows selected

系统权限中没有unlimit tablespace系统权限.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17179887/viewspace-702011/,如需转载,请注明出处,否则将追究法律责任。

上一篇: Oracle锁定机制
请登录后发表评论 登录
全部评论

注册时间:2009-03-27

  • 博文量
    96
  • 访问量
    169891