Oracle查詢用戶擁有所有系統(tǒng)權(quán)限的方法
更新時間:2024年12月27日 09:21:36 作者:數(shù)據(jù)派
這篇文章主要介紹了Oracle查詢用戶擁有所有系統(tǒng)權(quán)限,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧
Oracle查詢用戶擁有所有系統(tǒng)權(quán)限
SQL> desc dba_sys_privs; 查詢對象擁有的系統(tǒng)權(quán)限
Name Null? Type
---------------------------------------- -------- ---------------------------
GRANTEE NOT NULL VARCHAR2(30)
PRIVILEGE NOT NULL VARCHAR2(40)
ADMIN_OPTION VARCHAR2(3)
SQL> select * from dba_sys_privs where grantee='HR';
GRANTEE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
HR UNLIMITED TABLESPACE NO
HR CREATE SESSION NO
HR CREATE TABLE NO
SQL> desc dba_role_privs;
Name Null? Type
---------------------------------------- -------- ---------------------------
USERNAME VARCHAR2(30)
GRANTED_ROLE VARCHAR2(30)
ADMIN_OPTION VARCHAR2(3)
DEFAULT_ROLE VARCHAR2(3)
OS_GRANTED VARCHAR2(3)
SQL> select * from dba_role_privs where grantee='HR';對象擁有的角色
GRANTEE GRANTED_ROLE ADM DEF
------------------------------ ------------------------------ --- ---
HR RESOURCE NO YES
SQL> select * from role_sys_privs where ROLE='RESOURCE'; 通過角色查找權(quán)限
ROLE 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
SQL> select a.granted_role,b.privilege,c.privilege
From dba_role_privs a,role_sys_privs b ,dba_sys_privs c
Where a.granted_role=b.role and a.grantee=c.grantee and a.grantee='HR
RESOURCE CREATE SEQUENCE UNLIMITED TABLESPACE
RESOURCE CREATE INDEXTYPE CREATE SESSION
--看起來很美好,但是這是等值才返回結(jié)果,1=1=1 3*8=24t條記錄
select a.granted_role,b.privilege,c.privilege from dba_role_privs
a join role_sys_privs b on a.granted_role=b.role join dba_sys_privs
c on a.grantee=c.grantee and a.grantee='HR'; --一樣無法達到效果;
--a 通過用戶查找擁有的角色
select * from dba_role_privs grantee granted_role
-b 通過角色查找擁有的權(quán)限
select * from role_sys_privs 1-2 role granted_role
-c 通過用戶查找擁有的系統(tǒng)權(quán)限
select * from dba_sys_privs 1-3 grantee
--思路1+2=2 => 2+3=總
select * from (select a.grantee,b.privilege from
dba_role_privs a join role_sys_privs b on a.granted_role=b.role
union
select c.grantee,c.privilege from dba_sys_privs c)
where grantee='HR';
--于上一樣--where條件執(zhí)行速度更快
select a.grantee,b.privilege from
dba_role_privs a join role_sys_privs b
on a.granted_role=b.role where grantee='HR'
union
select c.grantee,c.privilege from dba_sys_privs c where grantee='HR';
意義:有些權(quán)限不是通過角色單獨授予、或者單獨授予權(quán)限:通過集合更好查找用戶有啥權(quán)限
****補充:
--什么是對象權(quán)限,設(shè)計到具體的針對某一個對象的權(quán)限;
grant select on scott.dept to hr;
查詢會有具體對象的權(quán)限;
select * from dba_tab_privs where grantee='HR';
HR SYS YANG SYS WRITE NO NO
HR SYS YANG SYS READ NO NO
HR SYS DBMS_STATS SYS EXECUTE NO NO
HR SCOTT DEPT SCOTT SELECT NO NO
回收: revoke execute on sys.DBMS_STATS from hr;到此這篇關(guān)于Oracle查詢用戶擁有所有系統(tǒng)權(quán)限的文章就介紹到這了,更多相關(guān)Oracle查詢用戶擁有權(quán)限內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:
- oracle創(chuàng)建新用戶以及用戶權(quán)限配置、查詢語句
- oracle數(shù)據(jù)庫如何給用戶授權(quán)查詢權(quán)限
- Oracle數(shù)據(jù)庫scott用戶創(chuàng)建view視圖權(quán)限的操作方法
- Oracle創(chuàng)建設(shè)置查詢權(quán)限用戶的方法
- Oracle的用戶、角色及權(quán)限相關(guān)操作
- MySQL與Oracle 差異比較之七用戶權(quán)限
- Oracle中sys和system用戶、系統(tǒng)權(quán)限和角色的區(qū)別
- Oracle刪除當前用戶下所有表的方法適用于有或沒有刪除權(quán)限
- oracle用戶權(quán)限管理使用詳解
相關(guān)文章
oracle導(dǎo)出sql語句的結(jié)果集和保存執(zhí)行的sql語句(深入分析)
本篇文章是對oracle導(dǎo)出sql語句的結(jié)果集與保存執(zhí)行的sql語句進行了詳細的分析介紹,需要的朋友參考下2013-05-05
ORACLE中dbms_output.put_line輸出問題的解決過程
最近用dbms_output.put_line來輸出變量的一些信息,卻總是看不到結(jié)果,所以這篇文章主要給大家介紹了關(guān)于ORACLE中dbms_output.put_line輸出問題的解決過程,需要的朋友可以參考下2022-06-06
這篇文章主要介紹了Oracle數(shù)據(jù)庫建立臨時表的相關(guān)知識以及和SQL Server臨時表的不同點的對比,希望能夠?qū)δ兴鶐椭?/div> 2015-09-09
oracle關(guān)閉數(shù)據(jù)庫的4種操作方法區(qū)別詳析
Oracle數(shù)據(jù)庫提供了幾種不同的數(shù)據(jù)庫啟動和關(guān)閉方式,這篇文章主要介紹了oracle關(guān)閉數(shù)據(jù)庫的4種操作方法區(qū)別的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2025-10-10最新評論

