- 角色: 是具有名稱的一組相關權限的組合,即將不同權限組合在一起就形成了角色。可以使用角色爲用戶授權,同樣也可以從用戶中回收角色。
- 一個角色集合了多種權限,所以爲用戶授予某個角色時,相當於爲用戶授予多種權限。
- 使用角色的特點和優點
- 1> 並不是一次一個地將權限直接授予一個用戶,而是先創建角色,想該角色授予一些權限,然後在將該角色授予多個用戶。
- 2> 在增加或者刪除一個角色的權限時,被授予該角色的所有用戶都會自動獲得或失去相應權限。
- 3> 可以將多個角色授予一個用戶。
- 4> 可以爲角色攝者口令。
- Oracle DB系統提供的預定義角色。
- connect 具有最終用戶的典型權限和最基本的權限,如:alter|create session;create cluster/database link/sequence/view/synonym
- resource 主要是授予開發人員的,包括以下系統權限: create cluster|procedure|sequence|table|trigger|type等。
- dba 擁有系統所有的系統權限。
- exp_full_database 具有數據庫邏輯備份時數據數據導出權限。
- imp_full_database 具有數據庫邏輯備份時數據數據導入權限。
- delete_catalog_role 具有刪除和重建數據字典所需的權限
- execute_catalog_role 具有查詢數據字典的權限。
- select_catalog_role 具有從數據字典中執行部分存儲過程和函數的權限。
- 創建角色 create role (用戶需create role_name 權限)
- create role role_name
- [not idntified|identified by password]
- role_name: 創建的角色名。
- not identified: 表示該角色不需要口令就可以被啓用或修改。
- identified by password: 表示必須通過指定口令才能啓用或修改該角色,默認沒有口令。
- 爲角色授予權限(新創建的角色是沒有任何權限,可以使用grant授予)
- grant select, update,insert,delete on emp to role_name;
- 爲用戶授予角色,grant
- grant role_name, create session to user_name;
- 實例:
- 創建角色: create role role_name identified by password;
- 爲角色授予系統權限: grant create session, create table to role_name with admin option;
- 爲角色授予對象權限: grant select, update,insert,delete on scott.emp to role_name;
- 創建用戶: create user user_name identified by adminPassword;
- 爲用戶授予角色: grant role_name to user_name;
- 修改和刪除角色
- 1> 查看角色信息
- dba_roles 記錄數據庫中所有角色。
- dba_role_privs 記錄所有已經被授予用戶和角色的角色。
- user_roles 包含已經授予當前用戶的角色信息。
- role_role_privs 包含角色授予角色信息。
- role_sys_privs 包含爲角色授予的系統權限信息。
- role_tab_privs 包含爲角色授予的對象權限信息.
- session_roles 包含當前會話所包含的角色信息。
- 2> 修改角色(alter role)
- a。修改角色口令:
- alter role role_name[not identified|identified by password]
- alter role role_name not identified;
- alter role role_name identified by password;
- 3> 刪除角色 使用drop role role_name
- 角色被刪除後,對於使用該角色的用戶來說,相應的權限同時被刪除。
-- 轉載自: http://wkf41068.iteye.com/blog/1929023