oracle: default role 詳解(轉)
ORACLE建立角色的時候是可以帶密碼驗證的。當為一個使用者授予角色時,如果是授予的DEFAULT的時候,那麼這個使用者登入的時候自動就具備了這個角色,不需要進行這個角色的密碼驗證的。如果不是DEFAULT的,那麼可以使用SET ROLE ROLE_NAME IDENTIFIED ROLE_PASSWORD來進行密碼驗證後,使用者才能具有相應的角色。
oracle許可權體系中有個default role,比較難以理解。下面用例項說明一下作用。
我們可以給某個使用者分配一些角色,比如role r1,r2,r3,r4,而其中可以將某些角色比如r1設定為default role,其他的不設定成default role,這樣,當該使用者登入時,自動具有default role中所包含的許可權,其他的角色所具有的許可權要透過set role 角色來獲得。
下面我們舉個例子:
(1)sys使用者作為sysdba登入,建立4個角色:
create role r1;
create role r2 identified by r2;
create role r3 identified by r3;
create role r4 identified by r4;
(2)sys使用者賦予這四個角色對應的許可權:
grant create session to r1;
grant select on hr.test to r2; (這裡hr.test是我新建立的一個表,裡面有ID和name兩列)
grant update(name) on hr.test to r3;
grant insert on hr.test to r3;
grant delete on hr.test to r4;
(3)sys使用者建立一個使用者u3
create user u3 identified by u3;
(4)將角色r1,r2,r3,r4賦予使用者u3
grant r1,r2,r3,r4 to u3;
在修改使用者u3的預設角色前,r1,r2,r3,r4 角色均為u3的 default role,以u3使用者登入,查詢、增刪改hr.test,都沒有問題。
(5)現在sys使用者修改使用者u3的default role,僅將r1作為u3的預設角色:
alter user u3 default role r1; --此時將覆蓋原來的設定,u3 的default role =r1,僅僅有登入許可權。
(6)使用者u3 log off ,然後再log on,進去後發現,
查詢、增刪改hr.test都不能進行。
(7) 使用者自己開啟role許可權
set role r2 identified by r2;
這時執行 select * from hr.test,發現沒有問題。增刪改不行。
將對應的角色開啟:
set role r3 identified by r3;
此時修改和插入記錄沒有問題,但是select * from hr.test 確發現不行了。證明此時使用者所屬的角色僅僅是預設角色r1,和剛剛開啟的角色r3,而r2被set role r3 identified by r3;覆蓋掉了。
那要同時有r2,r3,r4的許可權怎麼辦呢?
set role r2 identified by r2,r3 identified by r3,r4 identified by r4。此時就同時對hr.test可以進行查詢,增刪改了。
不過set role 的效果是臨時的,只是當前session有效,其他的session無效,當結束當前session後再登入,又只有default role 的許可權了。
本文來自CSDN部落格,轉載請標明出處:
http://blog.csdn.net/strikers1982/archive/2010/01/27/5262157.aspx
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/19602/viewspace-2158793/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 聊聊Oracle Default RoleOracle
- Oracle角色許可權之Default RoleOracle
- 詳解使用Role來保護Oracle資料庫的安全性Oracle資料庫
- oracle set roleOracle
- Java8的default方法詳解Java
- Oracle OCP(30):ROLEOracle
- Java 8中的default方法使用詳解Java
- ORACLE等待事件詳解(轉)Oracle事件
- Oracle Profile 使用詳解(轉)Oracle
- Oracle dblink詳解(轉)Oracle
- Oracle default usersOracle
- (轉)Oracle直方圖詳解Oracle直方圖
- oracle over函式 詳解(轉)Oracle函式
- 轉:Oracle RAC Failover 詳解OracleAI
- Oracle 角色 自定義角色 RoleOracle
- Oracle RAC Failover 詳解[轉帖]OracleAI
- 轉:oracle EXP /IMP引數詳解Oracle
- oracle-merge用法詳解 (轉)Oracle
- 9 Role Transitions 角色轉換
- [轉載] The role of the Software Architect
- Oracle Created (Default) Database UsersOracleDatabase
- Oracle OCP(31):USER & ROLE & PRIVILEGE 其它Oracle
- 有關Oracle role的總結Oracle
- Oracle 10046 event詳解-轉載Oracle
- ORACLE 10046事件詳解-轉載Oracle事件
- oracle起動和關閉詳解(轉)Oracle
- Oracle 11g Default SchemasOracle
- [轉載]ORACLE GOLDENGATE的主要元件詳解OracleGo元件
- oracle資料庫 exp/imp命令詳解(轉)Oracle資料庫
- Oracle WebLogic Default Password & Change PasswordOracleWeb
- oracle 跟蹤檔案和轉儲命令詳解Oracle
- Oracle資料操作和控制語言詳解(轉)Oracle
- oracle實驗記錄 (許可權,role)Oracle
- oracle之 Oracle LOB 詳解Oracle
- oracle dump詳解Oracle
- oracle INVENTORY 詳解Oracle
- oracle recyclebin詳解Oracle
- ORACLE -詳解SCNOracle