檢視Oracle使用者的許可權或角色

迷倪小魏發表於2018-01-19

前幾天被問到一些關於許可權和角色的問題,今天抽時間總結一下如何檢視Oracle使用者的許可權或角色,在之前的博文中,寫過 SYS,SYSTEM,DBA,SYSDBA,SYSOPER的區別與聯絡 以及  Oracle中定義者許可權和呼叫者許可權案例分析 這兩篇博文,讀者可以參考閱讀!Oracle的東西感覺很雜,抽空閒的時間多總結也是對知識的一個梳理以及對自己的一個提高,文中若有錯誤或者不當之處,請大家指出,謝謝!


一、檢視使用者


1.
檢視所有使用者:
select * from dba_users;
select * from all_users;
select * from user_users;    //檢視當前使用者


二、檢視角色


1.
當前使用者被啟用的全部角色
  select * from session_roles;

2.當前當前使用者被授予的角色
  select * from user_role_privs;

3.全部使用者被授予的角色
  select * from dba_role_privs;

4、檢視某個使用者所擁有的角色

select * from dba_role_privs where grantee='使用者名稱';

 

5、檢視某個角色所擁有的許可權

select * from dba_sys_privs where grantee='CONNECT';

 

6.檢視所有角色
  select * from dba_roles;



三、檢視許可權


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_sys_privs;

select * from user_sys_privs;


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


3.
檢視哪些使用者有sysdbasysoper系統許可權(查詢時需要相應許可權)
  select * from v$pwfile_users;

擴充套件

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

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

 

3 查詢當前使用者可以訪問的所有資料字典檢視。 
select * from dict where comments like '%grant%';   
 

4、顯示當前資料庫的全稱
select * from global_name;   

 

問題 1:如何查詢一個角色包括的許可權?   
a.一個角色包含的系統許可權   
         select * from dba_sys_privs where grantee='角色名'  

         select * from dba_sya_privs where grantee='COONNECT'; connect要大寫
         另外也可以這樣檢視:   
         select * from role_sys_privs where role='角色名'   
b.一個角色包含的物件許可權   
         select * from dba_tab_privs where grantee='角色名'   

問題 2Oracle究竟有多少種角色?   
select * from dba_roles;   

問題 3:如何檢視某個使用者,具有什麼樣的角色?   
select * from dba_role_privs where grantee='使用者名稱'  

 

問題4:檢視哪些使用者具有DBA的角色

select grantee from dba_role_privs where granted_role='DBA';

 

作者:SEian.G(苦練七十二變,笑對八十一難)


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

相關文章