Oracle DB 關於CONNECT、RESOURCE 和DBA 角色權限


授予角色的語法:

grant <object/system privilege> to <role name>;

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

GRANT connect,resource,dba TO 用戶;

1、CONNECT 角色,擁有Connect權限的用戶只可以登錄ORACLE(僅具有創建SESSION的權限),不可以創建實體,不可以創建數據庫結構。

2、RESOURCE 角色,是授予開發人員的。擁有Resource權限的用戶只可以創建實體,不可以創建數據庫結構。同時,當把ORACLE resource角色授予一個user的時候,不但會授予ORACLE resource角色本身的權限,而且還有unlimited tablespace權限,但是,當把resource授予一個role時,就不會授予unlimited tablespace權限。


Create trigger--建立觸發器;

Create sequence—建立序列;

Create type--建立類型;

Create procedure--建立過程;

Create cluster--建立聚簇;

Create operator--創建操作者;

Create indextype--創建索引類型;

Create table--建表。

3、DBA角色,--是授予數據庫維護人員的。擁有全部特權,是系統最高權限,只有DBA才可以創建數據庫結構。

從dba_sys_privs查看權限grantee privilege:

SQL>Select grantee,privilege from dba_sys_privs

         Where grantee= 'DBA'

         Order by privilege;

 

注意:

  • 10g 開始,connect里面只有 create session權限了;
  • resource權限里沒有 create view;
  • 還需要重點說明下的是 unlimited tablespace(授予了resource權限給user, user1 其實自動有了unlimited tablespace權限)

4、Unlimited tablespace的特點: 
1、系統權限unlimited tablespace不能被授予role,只能被授予用戶。也就是說,unlimited tablespace系統權限不能包含在一個角色role中 
2、unlimited tablespace沒有被包括在resource role和dba role中,但是unlimited tablespace隨着resource或者dba的授予而授予用戶的。也就是說,如果將role角色授予了某個用戶,那么這個用戶將會擁有unlimited tablespace系統權限 
3、unlimited tablespace不能伴隨這resource被授予role而授予用戶。也就是說加入resource角色被授予了role_test角色,然后把role_test授予了test用戶,但是此時unlimited tablespace沒有被授予test用戶

5、數據字典dba_tab_privs


 

各個列屬性描述如下:

GRANTEE  :被授予權限的用戶或角色

 OWNER: 權限擁有者

 TABLE_NAME:對象名字

 GRANTOR:執行授予權限用戶的名字

 PRIVILEGE:對象的權限

 GRANTABLE:是否授予GRANT OPTION權限

 HIERARCHY:是否授予HIERARCHY OPTION


免責聲明!

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



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