帶您深入了解oracle權(quán)限管理
oracle權(quán)限管理同樣是在創(chuàng)建數(shù)據(jù)庫(kù)角色之后賦予相應(yīng)的權(quán)限,下面對(duì)oracle權(quán)限管理作了詳盡的闡述,如果您對(duì)oracle權(quán)限管理方面感興趣的話(huà),不妨一看。
一、創(chuàng)建角色
Create role clerk identified by bicentennial;
以上命令創(chuàng)建一個(gè)名為clerk的角色,他的密碼為bicentennial,當(dāng)角色被授予某個(gè)用戶(hù)時(shí),必須使用密碼進(jìn)行驗(yàn)證。如果不指定identified子句,則數(shù)據(jù)庫(kù)使用not identified,這時(shí)激活角色不需要認(rèn)證。
二、角色賦權(quán)
1.授予角色系統(tǒng)權(quán)限和角色
如果要給某個(gè)角色授權(quán),你必須需要具有以下權(quán)限:
如果要授予系統(tǒng)權(quán)限,你自已必須被授與此權(quán)限時(shí),包括Admin Option或擁有GRANT ANY PRIVILEGE系統(tǒng)權(quán)限。
如果授與角色,你必須被授予與此角色時(shí)包括Admin Option或擁有GRANT ANY ROEL 系統(tǒng)角色。
Grant create session to jward;
a)授予Admin Option
Grant new_dba to michal with admin option;
如果一個(gè)用戶(hù)或角色被授權(quán)的同時(shí)指定with admin option子句,則有以下效果:
i.該用戶(hù)或角色可以將此權(quán)限賦與任何其他用戶(hù),或從其他用戶(hù)回收此權(quán)限。
ii.這個(gè)用戶(hù)或角色可以將此oracle權(quán)限管理權(quán)傳遞給任何用戶(hù)。
iii.被授予角色的用戶(hù)可以修改或drop角色。
b)在賦權(quán)的同時(shí)創(chuàng)建用戶(hù)
Oracle允許你在grant的同時(shí)創(chuàng)建一個(gè)新用戶(hù),如果你通過(guò)一個(gè)identified by子句指定一個(gè)密碼,而用戶(hù)名/密碼不存在數(shù)據(jù)庫(kù)中,一個(gè)新用戶(hù)就將被創(chuàng)建。
c)Grant connect to ssmith identified by p1q2r3;
2.授予object角色
如果你要將某個(gè)object的權(quán)限授予某個(gè)用戶(hù),你必須符合以下條件:
你擁有指定的object
你擁有GRANT ANY OBJECT PRIVELEGE系統(tǒng)權(quán)限
你被賦與此Object權(quán)限包括WITH GRANT OPTION。
Grant select,insert,delete om emp to jfee,tsmith;
Grant all on emp to jfee;
a)授予Grant Option
如你指定with grant option,被授權(quán)的用戶(hù)將獲得以下權(quán)限:
i被授權(quán)的用戶(hù)可以授予任何用戶(hù)此對(duì)像的權(quán)限
ii如果被授權(quán)的用戶(hù)擁有Create view或Create any view系統(tǒng)權(quán)限,則用戶(hù)可以在此表上創(chuàng)建一個(gè)視圖,同時(shí)賦權(quán)給其他用戶(hù)訪問(wèn)。
3.在列上授權(quán)
你可以在單獨(dú)的列上授予用戶(hù)插入、修改、刪除權(quán)限:
Grant insert (acct_no) on accounts to scott;
三、回收角色權(quán)限
1.回收系統(tǒng)權(quán)限
任何擁有指定系統(tǒng)權(quán)限的ADMIN OPTION或擁有權(quán)限管理權(quán)限的用戶(hù)都可以從任何用戶(hù)上回收指定權(quán)限
Revoke create table from tsmith;
這里要注意,ADMIN OPTION不能作為權(quán)限單獨(dú)回收。
2.回收Object權(quán)限
為了回收Object權(quán)限,必須符合以下條件:
此權(quán)限是由你之前賦與用戶(hù)或角色的
你擁有GRANT ANY OBJECT PRIVILEGE權(quán)限
注意一個(gè)擁有GRANT OPTION的用戶(hù),如果Object對(duì)像被回收,則所有由它賦權(quán)的用戶(hù)的相應(yīng)權(quán)限都將被回收
Revoke all on dept from human_resource;
四、賦權(quán)與回收的生效時(shí)間
關(guān)于系統(tǒng)權(quán)限或Object權(quán)限的賦權(quán)與回收都是立即生效的。
將角色同授予某個(gè)用戶(hù)或從用戶(hù)回收將在下一次新建session時(shí)生效,除非使用Set 指定。
在session中,用戶(hù)可以使用set role來(lái)改變r(jià)ole
Set role ckerk identified by bicentennial; 如果用戶(hù)有密碼則必須使用identified by 指定
關(guān)閉所有角色
Set role none
五、指定用戶(hù)缺省權(quán)限
當(dāng)用戶(hù)登陸時(shí),oracle自動(dòng)將用戶(hù)缺省角色中的權(quán)限賦與用戶(hù)。
Alter user jane default role payclerk,pettycash
【編輯推薦】
oracle樹(shù)查詢(xún)的實(shí)現(xiàn)