oracle
中的角色
一、何為角色?
我在前面的篇幅中說明許可權和使用者。慢慢的在使用中你會發現乙個問題:如果有一組人, 他們的所需的許可權是一樣的,當對他們的許可權進行管理的時候會很不方便。因為你要對這組中的每個使用者的許可權都進行管理。
有乙個很好的解決辦法就 是:角色。角色是一組許可權的集合,將角色賦給乙個使用者,這個使用者就擁有了這個角色中的所有許可權。那麼上述問題就很好處理了,只要第一次將角色賦給這一組用 戶,接下來就只要針對角色進行管理就可以了。
以上是角色的乙個典型用途。其實,只要明白:角色就是一組許可權的集合。下面分兩個部門來對oracle
角 色進行說明。
二、系統預定義角色
預定義角色是在資料庫安裝後,系統自動建立的一些常用的角色。下介簡單的介紹一 下這些預定角色。角色所包含的許可權可以用以下語句查詢:
sql>select * from role_sys_privs where role='角色名';
1.connect, resource, dba
這些預定義角色主要是為了向後相容。其主要是用於資料庫管理。oracle
建 議使用者自己設計資料庫管理和安全的許可權規劃,而不要簡單的使用這些預定角色。將來的版本中這些角色可能不會作為預定義角色。
2.delete_catalog_role, execute_catalog_role, select_catalog_role
這 些角色主要用於訪問資料字典檢視和包。
3.exp_full_database, imp_full_database
這兩個角色用於資料匯入匯出工具的使用。
4.aq_user_role, aq_administrator_role
aq:advanced query。這兩個角色用於oracle
高 級查詢功能。
5.snmpagent
用於oracle
enterprise manager和intelligent agent
6.recovery_catalog_owner
用於建立擁有恢復庫的使用者。關於恢復庫的資訊,參考oracle
文 檔《oracle9i user-managed backup and recovery guide》
7.hs_admin_role
a dba using oracle
二、管理角色
1.建乙個角色
sql>create role role1;
2. 授權給角色
sql>grant create any table,create procedure to role1;
3.授 予角色給使用者
sql>grant role1 to user1;
4.檢視角色所包含的許可權
sql>select * from role_sys_privs;
5.建立帶有口令以角色(在生效帶有口令的角色時必須提供口令)
sql>create role role1 identified by password1;
6.修改角色:是否需要口令
sql>alter role role1 not identified;
sql>alter role role1 identified by password1;
7.設定當前使用者要生效的角色
(注:角色的生效是乙個什麼概念呢?假設使用者a有b1,b2,b3三個角色,那麼如果 b1未生效,則b1所包含的許可權對於a來講是不擁有的,只有角色生效了,角色內的許可權才作用於使用者,最大可生效角色數由引數 max_enabled_roles設定;在使用者登入後,oracle
將所有直接賦給用 戶的許可權和使用者預設角色中的許可權賦給使用者。)
sql>set role role1;//使role1生效
sql>set role role,role2;//使role1,role2生效
sql>set role role1 identified by password1;//使用帶有口令的role1生效
sql>set role all;//使用該使用者的所有角色生效
sql>set role none;//設定所有角色失效
sql>set role all except role1;//除role1外的該使用者的所有其它角色生效。
sql>select * from session_roles;//檢視當前使用者的生效的角色。
8.修改指定使用者,設定其預設角色
sql>alter user user1 default role role1;
sql>alter user user1 default role all except role1;
詳見oracle
參考文件
9.刪除角色
sql>drop role role1;
角色刪除後,原來擁用該角色的使用者就不再擁有該角色了,相應的許可權也就沒有了。
oracle中的角色
一 何為角色?我在前面的篇幅中說明許可權和使用者。慢慢的在使用中你會發現乙個問題 如果有一組人,他們的所需的許可權是一樣的,當對他們的許可權進行管理的時候會很不方便。因為你要對這組中的每個使用者的許可權都進行管理。有乙個很好的解決辦法就是 角色。角色是一組許可權的集合,將角色賦給乙個使用者,這個使用...
oracle 中的角色
conn sys as sysdba create role testrole grant create session,create table,unlimited tablespace to testrole create user test identified by test grant t...
Oracle中角色的使用
建立角色wip並設定登入wip的密碼為oracle create user wip identified by oracle 給角色賦予連線和使用資源的許可權 grant connect,resource to wip sql conn mes oracle wongoing test connec...