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;
角色刪除後,原來擁用該角色的用戶就不再擁有該角色了,相應的權限也就沒有了。


說明:

1)無法使用WITH GRANT OPTION爲角色授予對象權限

2)可以使用WITH ADMIN OPTION 爲角色授予系統權限,取消時不是級聯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章