Oracle入门(九A)之用户的权限或角色
轉(zhuǎn)載自?查看Oracle用戶的權(quán)限或角色
前幾天被問到一些關(guān)于權(quán)限和角色的問題,今天抽時間總結(jié)一下如何查看Oracle用戶的權(quán)限或角色,在之前的博文中,寫過 SYS,SYSTEM,DBA,SYSDBA,SYSOPER的區(qū)別與聯(lián)系 以及? Oracle中定義者權(quán)限和調(diào)用者權(quán)限案例分析 這兩篇博文,讀者可以參考閱讀!Oracle的東西感覺很雜,抽空閑的時間多總結(jié)也是對知識的一個梳理以及對自己的一個提高,文中若有錯誤或者不當(dāng)之處,請大家指出,謝謝!
一、查看用戶
1.查看所有用戶:
select * from dba_users;
select * from all_users;
select * from user_users;? ? //查看當(dāng)前用戶
二、查看角色
1.當(dāng)前用戶被激活的全部角色
? select * from session_roles;
2.當(dāng)前當(dāng)前用戶被授予的角色
? select * from user_role_privs;
3.全部用戶被授予的角色
? select * from dba_role_privs;
4、查看某個用戶所擁有的角色
select * from dba_role_privs where grantee='用戶名';
5、查看某個角色所擁有的權(quán)限
select * from dba_sys_privs where grantee='CONNECT';
6.查看所有角色
? select * from dba_roles;
三、查看權(quán)限
1.基本權(quán)限查詢:
select * from session_privs; --當(dāng)前用戶所擁有的全部權(quán)限
select * from user_sys_privs;--當(dāng)前用戶的系統(tǒng)權(quán)限
select * from user_tab_privs;--當(dāng)前用戶的對象權(quán)限
select * from dba_sys_privs ;--查詢某個用戶所擁有的系統(tǒng)權(quán)限
select * from role_sys_privs;--查看角色(只能查看登陸用戶擁有的角色)所包含的權(quán)限
2. 查看用戶的系統(tǒng)權(quán)限(直接賦值給用戶或角色的系統(tǒng)權(quán)限)
select * from dba_sys_privs;
select * from user_sys_privs;
2.查看用戶的對象權(quán)限:
?select * from dba_tab_privs;
?select * from all_tab_privs;
?select * from user_tab_privs;
3.查看哪些用戶有sysdba或sysoper系統(tǒng)權(quán)限(查詢時需要相應(yīng)權(quán)限)
? select * from v$pwfile_users;?
擴(kuò)展
1、以下語句可以查看Oracle提供的系統(tǒng)權(quán)限
select name from sys.system_privilege_map
2、查看一個用戶的所有系統(tǒng)權(quán)限(包含角色的系統(tǒng)權(quán)限)
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、 查詢當(dāng)前用戶可以訪問的所有數(shù)據(jù)字典視圖。?
select * from dict where comments like '%grant%';? ?
4、顯示當(dāng)前數(shù)據(jù)庫的全稱
select * from global_name;? ?
問題 1:如何查詢一個角色包括的權(quán)限?? ?
a.一個角色包含的系統(tǒng)權(quán)限? ?
? ? ? ? ?select * from dba_sys_privs where grantee='角色名'??
? ? ? ? ?select * from dba_sya_privs where grantee='COONNECT'; connect要大寫
? ? ? ? ?另外也可以這樣查看:? ?
? ? ? ? ?select * from role_sys_privs where role='角色名'? ?
b.一個角色包含的對象權(quán)限? ?? ? ? ? ?select * from dba_tab_privs where grantee='角色名'? ?
問題 2:Oracle究竟有多少種角色?? ?
select * from dba_roles;? ?
問題 3:如何查看某個用戶,具有什么樣的角色?? ?
select * from dba_role_privs where grantee='用戶名'??
select grantee from dba_role_privs where granted_role='DBA';
總結(jié)
以上是生活随笔為你收集整理的Oracle入门(九A)之用户的权限或角色的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 唯美的三字词牌名 意境优美词牌名三个字
- 下一篇: Oracle入门(十四C)之转换函数