ORACLE的CONNECT和RESOURCE角色權限


最近在處理數據庫的用戶權限問題,之前慣性思維,覺得給用戶授權RESOURCE權限之后,用戶的一般權限都會有,等到發現用戶有RESOURCE角色,卻沒有創建視圖的權限之后,才發現這部分還是一知半解啊,所以此處整理了一下相關的CONNECT角色和RESOURCE角色的內容。

一般情況下,在新建數據庫用戶后,都會習慣性的給用戶授權CONNECT角色和RESOURCE角色:

GRANT connect,resource TO 用戶;

但是擁有這兩個角色的用戶都擁有什么權限呢?可以使用如下語句查看一下:

SELECT * FROM dba_sys_privs WHERE grantee IN ('RESOURCE', 'CONNECT') ORDER BY 1;

從查詢結果可以看到:

image

CONNECT角色:僅具有創建SESSION的權限

RESOURCE角色:僅具有創建CLUSTER,INDEXTYPE,OPERATOR,PROCEDEURE,SEQUENCE,TABLE,TRIGGER,TYPE的權限。同時,當把ORACLE resource角色授予一個user的時候,不但會授予ORACLE resource角色本身的權限,而且還有unlimited tablespace權限,但是,當把resource授予一個role時,就不會授予unlimited tablespace權限。

確實沒有創建視圖的權限,由此看來如果需要創建視圖權限,只能單獨授權:

GRANT CREATE VIEW TO 用戶;

 

那么,一個用戶,如果查看他擁有什么權限呢?

方法一:PLSQL Developer工具

在PLSQL Developer中可以很方便的查看用戶的各種類型權限(包括對象權限,角色權限,系統權限),如下圖:

image

 

方法二:SQL查詢語句

查詢對象權限:

SELECT * FROM dba_tab_privs a WHERE a.grantee = '用戶名';

 

查詢角色權限:

SELECT * FROM dba_role_privs a WHERE a.GRANTEE = '用戶名';

 

查詢系統權限:

SELECT * FROM dba_sys_privs a WHERE a.GRANTEE = '用戶名';


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM