Oracle檢視當前登陸使用者的許可權或者角色

Michael_DD發表於2014-10-30
Oracle檢視當前登陸使用者的許可權或者角色

檢視當前使用者的角色
SQL>select * from user_role_privs;
SQL>select * from session_privs

檢視當前使用者的系統許可權和表級許可權
SQL>select * from user_sys_privs;
SQL>select * from user_tab_privs;
附:

一、檢視使用者:
1.檢視當前使用者:
  select * from v$session;
2.檢視所有使用者:
  select * from dba_users;
  select * from all_users;
  select * from user_users;

二、檢視角色:
1.當前使用者被啟用的全部角色
  select * from session_roles;
2.當前使用者被授予的角色
  select * from user_role_privs;
2.全部使用者被授予的角色
  select * from dba_role_privs;
3.檢視所有角色:
  select * from dba_roles;
4. 查詢當前角色被授予的角色
  Select GRANTED_ROLE from ROLE_ROLE_PRIVS where ROLE=&ROLE;--例如role= 'DBA'


三、檢視許可權:
1.基本許可權查詢:
select * from session_privs;--當前使用者所擁有的全部許可權
select * from user_sys_privs;--當前使用者的系統許可權
select * from user_tab_privs;--當前使用者的表級許可權
select * from dba_sys_privs;--查詢某個使用者所擁有的系統許可權
select * from role_sys_privs;--檢視角色(只能檢視登陸使用者擁有的角色)所包含的許可權

2.檢視使用者物件許可權:
  select * from dba_tab_privs;
  select * from all_tab_privs;
  select * from user_tab_privs;

3.檢視哪些使用者有sysdba或sysoper系統許可權(查詢時需要相應許可權)
  select * from V$PWFILE_USERS

注意:
1、以下語句可以檢視Oracle提供的系統許可權
select name from sys.system_privilege_map

2、檢視一個使用者的所有系統許可權(包含角色的系統許可權)
Sql程式碼
select privilege from dba_sys_privs where grantee='DATAUSER'  
union  
select privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='DATAUSER' );   


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29500582/viewspace-1314555/,如需轉載,請註明出處,否則將追究法律責任。

相關文章