本篇內(nèi)容主要講解“怎么理解oracle中default role”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“怎么理解oracle中default role”吧!
10多年專(zhuān)注成都網(wǎng)站制作,成都定制網(wǎng)站,個(gè)人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識(shí)、方案,網(wǎng)站設(shè)計(jì)流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),專(zhuān)注于成都定制網(wǎng)站,高端網(wǎng)頁(yè)制作,對(duì)玻璃貼膜等多個(gè)行業(yè),擁有豐富的網(wǎng)站推廣經(jīng)驗(yàn)。
ORACLE創(chuàng)建角色的時(shí)候是可以帶密碼驗(yàn)證的。當(dāng)為一個(gè)用戶授予角色時(shí),如果是授予的DEFAULT的時(shí)候,那么這個(gè)用戶登錄的時(shí)候自動(dòng)就具備了這個(gè)角色,不需要進(jìn)行這個(gè)角色的密碼驗(yàn)證的。如果不是DEFAULT的,那么可以使用SET ROLE ROLE_NAME IDENTIFIED ROLE_PASSWORD來(lái)進(jìn)行密碼驗(yàn)證后,用戶才能具有相應(yīng)的角色。
oracle權(quán)限體系中有個(gè)default role,比較難以理解。下面用實(shí)例說(shuō)明一下作用。
我們可以給某個(gè)用戶分配一些角色,比如role r1,r2,r3,r4,而其中可以將某些角色比如r1設(shè)置為default role,其他的不設(shè)置成default role,這樣,當(dāng)該用戶登錄時(shí),自動(dòng)具有default role中所包含的權(quán)限,其他的角色所具有的權(quán)限要通過(guò)set role 角色來(lái)獲得。
下面我們舉個(gè)例子:
(1)sys用戶作為sysdba登錄,創(chuàng)建4個(gè)角色:
create role r1;
create role r2 identified by r2;
create role r3 identified by r3;
create role r4 identified by r4;
(2)sys用戶賦予這四個(gè)角色對(duì)應(yīng)的權(quán)限:
grant create session to r1;
grant select on hr.test to r2; (這里hr.test是我新創(chuàng)建的一個(gè)表,里面有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用戶創(chuàng)建一個(gè)用戶u3
create user u3 identified by u3;
(4)將角色r1,r2,r3,r4賦予用戶u3
grant r1,r2,r3,r4 to u3;
在修改用戶u3的默認(rèn)角色前,r1,r2,r3,r4 角色均為u3的 default role,以u(píng)3用戶登錄,查詢(xún)、增刪改hr.test,都沒(méi)有問(wèn)題。
(5)現(xiàn)在sys用戶修改用戶u3的default role,僅將r1作為u3的默認(rèn)角色:
alter user u3 default role r1; --此時(shí)將覆蓋原來(lái)的設(shè)置,u3 的default role =r1,僅僅有登錄權(quán)限。
(6)用戶u3 log off ,然后再log on,進(jìn)去后發(fā)現(xiàn),
查詢(xún)、增刪改hr.test都不能進(jìn)行。
(7) 用戶自己打開(kāi)role權(quán)限
set role r2 identified by r2;
這時(shí)執(zhí)行 select * from hr.test,發(fā)現(xiàn)沒(méi)有問(wèn)題。增刪改不行。
將對(duì)應(yīng)的角色打開(kāi):
set role r3 identified by r3;
此時(shí)修改和插入記錄沒(méi)有問(wèn)題,但是select * from hr.test 確發(fā)現(xiàn)不行了。證明此時(shí)用戶所屬的角色僅僅是默認(rèn)角色r1,和剛剛打開(kāi)的角色r3,而r2被set role r3 identified by r3;覆蓋掉了。
那要同時(shí)有r2,r3,r4的權(quán)限怎么辦呢?
set role r2 identified by r2,r3 identified by r3,r4 identified by r4。此時(shí)就同時(shí)對(duì)hr.test可以進(jìn)行查詢(xún),增刪改了。
不過(guò)set role 的效果是臨時(shí)的,只是當(dāng)前session有效,其他的session無(wú)效,當(dāng)結(jié)束當(dāng)前session后再登錄,又只有default role 的權(quán)限了。
到此,相信大家對(duì)“怎么理解oracle中default role”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!