查询oracle用户角色权限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查询oracle用户角色权限相关的知识,希望对你有一定的参考价值。

1.查看所有用户:
  select * from dba_users;
  select * from all_users;
  select * from user_users;
2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):
	select * from dba_sys_privs;
        select * from user_sys_privs;
SQL> select * from user_sys_privs;

USERNAME                       PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
ZDZQ                           UNLIMITED TABLESPACE                     NO
3.查看角色(只能查看登陆用户拥有的角色)所包含的权限

sql>select * from role_sys_privs;

4.查看用户对象权限:
  select * from dba_tab_privs;
  select * from all_tab_privs;
  select * from user_tab_privs;
5.查看所有角色:
  select * from dba_roles
6.查看用户或角色所拥有的角色:
  select * from dba_role_privs;
  select * from user_role_privs;
--查询拥有DBA权限的用户
SQL> select * from dba_role_privs where granted_role=‘DBA‘;

GRANTEE                        GRANTED_ROLE                   ADM DEF
------------------------------ ------------------------------ --- ---
SYS                            DBA                            YES YES
SYSTEM                         DBA                            YES YES
ZSZQ                           DBA                            NO  YES
KSWORK
7.查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)

select * from V$PWFILE_USERS
比如我要查看用户 wzsb的拥有的角色: 


SQL> select * from dba_sys_privs where grantee=‘ZSZQ‘;

GRANTEE                        PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
ZSZQ                           UNLIMITED TABLESPACE                     NO

查看一个用户所有的权限及角色
select privilege
  from dba_sys_privs
 where grantee = ‘ZSZQ‘
union
select privilege
  from dba_sys_privs
 where grantee in      
       (select granted_role from dba_role_privs where grantee = ‘ZSZQ‘);


SQL> select * from dba_sys_privs where grantee=‘ZSZQ‘;

GRANTEE                        PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
ZSZQ                           UNLIMITED TABLESPACE                     NO
8、查看RESOURCE具有那些权限 
SQL> SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE=‘RESOURCE‘;
GRANTEE                        PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
RESOURCE                       CREATE TRIGGER                           NO
RESOURCE                       CREATE SEQUENCE                          NO
RESOURCE                       CREATE TYPE                              NO
RESOURCE                       CREATE PROCEDURE                         NO
RESOURCE                       CREATE CLUSTER                           NO
RESOURCE                       CREATE OPERATOR                          NO
RESOURCE                       CREATE INDEXTYPE                         NO
RESOURCE                       CREATE TABLE                             NO

已选择8行。

SQL> select * from role_sys_privs t1 where t1.role = ‘RESOURCE‘;

ROLE                           PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
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行。
9.查看scott用户的默认表空间、临时表空间
select username, default_tablespace, temporary_tablespace
  from dba_users
 where username = ‘SCOTT‘;
10.查看scott用户的系统权限
select username,privilege,admin_option 
from user_sys_privs 
where username = ‘SCOTT‘;

SQL> select username,privilege,admin_option
  2  from user_sys_privs
  3  where username = ‘SCOTT‘;

USERNAME                       PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
SCOTT                          CREATE VIEW                              NO
SCOTT                          UNLIMITED TABLESPACE                     NO

11.查看赋予scott用户的对象权限
select grantee,owner, table_name, t.grantor, t.privilege, t.grantable, t.hierarchy
from dba_tab_privs t
where t.grantee = ‘SCOTT‘; 
12.查看授予了scott的角色权限
select t.grantee, t.granted_role, t.admin_option, t.default_role
  from dba_role_privs t
 where t.grantee = ‘SCOTT‘;

SQL> select t.grantee, t.granted_role, t.admin_option, t.default_role
  2    from dba_role_privs t
  3   where t.grantee = ‘SCOTT‘;

GRANTEE                        GRANTED_ROLE                   ADM DEF
------------------------------ ------------------------------ --- ---
SCOTT                          RESOURCE                       NO  YES
SCOTT                          CONNECT                        NO  YES

SQL> select * from user_role_privs t;

USERNAME                       GRANTED_ROLE                   ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
ZSZQ                           CONNECT                        NO  YES NO
ZSZQ                           DBA                            NO  YES NO
ZSZQ                           EXP_FULL_DATABASE              NO  YES NO
ZSZQ                           IMP_FULL_DATABASE              NO  YES NO
ZSZQ                           RESOURCE                       NO  YES NO

13.查看scott用户使用了哪些表空间
select t.table_name, t.tablespace_name
from  dba_all_tables t
where t.owner = ‘SCOTT‘ ;
14.查看当前用户拥有的权限
select t.privilege from session_privs t;

SQL> select t.privilege from session_privs t;

PRIVILEGE
----------------------------------------
CREATE SESSION
UNLIMITED TABLESPACE
CREATE TABLE
CREATE CLUSTER
CREATE VIEW
CREATE SEQUENCE
CREATE PROCEDURE
CREATE TRIGGER
CREATE TYPE
CREATE OPERATOR
CREATE INDEXTYPE

已选择11行。

15.查看角色(DBA)被赋予的角色权限
select * from role_role_privs t where t.role = ‘DBA‘;
查看角色(DBA)被赋予的对象权限
16.select * from role_tab_privs t1  where t1.role = ‘DBA‘;


以上是关于查询oracle用户角色权限的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 查询用户做了哪些操作

oracle数据库控制已建表在不同用户下拥有不同权限

Oracle用户角色权限相关视图

Oracle基础入门--(用户角色权限)

Oracle权限相关查询

Oracle的用户角色以及权限相关操作