關(guān)于Oracle用戶權(quán)限的5個方面
Oracle用戶根據(jù)所被授予的權(quán)限分為系統(tǒng)權(quán)限和對象權(quán)限。這里我們主要介紹介紹創(chuàng)建角色、角色賦權(quán)、回收角色權(quán)限等方面。下面我們來一一進行解析。
一、創(chuàng)建Oracle用戶
Create role clerk identified by bicentennial;
以上命令創(chuàng)建一個名為clerk的角色,他的密碼為bicentennial,當角色被授予某個用戶時,必須使用密碼進行驗證。如果不指定identified子句,則數(shù)據(jù)庫使用not identified,這時激活角色不需要認證。
二、Oracle用戶權(quán)限
1.授予角色系統(tǒng)權(quán)限和角色
如果要給某個角色授權(quán),你必須需要具有以下權(quán)限:
1)如果要授予系統(tǒng)權(quán)限,你自已必須被授與此權(quán)限時,包括Admin Option或擁有GRANT ANY PRIVILEGE系統(tǒng)權(quán)限。
2)如果授與角色,你必須被授予與此角色時包括Admin Option或擁有GRANT ANY ROEL 系統(tǒng)角色。Grant create session to jward;
a)授予Admin Option
Grant new_dba to michal with admin option;
如果一個用戶或角色被授權(quán)的同時指定with admin option子句,則有以下效果:
i.該用戶或角色可以將此權(quán)限賦與任何其他用戶,或從其他用戶回收此權(quán)限。
ii.這個用戶或角色可以將此權(quán)限的管理權(quán)傳遞給任何用戶。
iii.被授予角色的用戶可以修改或drop角色。
b)在賦權(quán)的同時創(chuàng)建用戶
Oracle允許你在grant的同時創(chuàng)建一個新用戶,如果你通過一個identified by子句指定一個密碼,而用戶名/密碼不存在數(shù)據(jù)庫中,一個新用戶就將被創(chuàng)建。
c)Grant connect to ssmith identified by p1q2r3;
2.授予object角色
如果你要將某個object的權(quán)限授予某個用戶,你必須符合以下條件:你擁有指定的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)的用戶將獲得以下Oracle用戶權(quán)限:
i被授權(quán)的用戶可以授予任何用戶此對像的權(quán)限
ii如果被授權(quán)的用戶擁有Create view或Create any view系統(tǒng)權(quán)限,則用戶可以在此表上創(chuàng)建一個視圖,同時賦權(quán)給其他用戶訪問。
3.在列上授權(quán)
你可以在單獨的列上授予用戶插入、修改、刪除權(quán)限:Grant insert (acct_no) on accounts to scott;
三、回收Oracle用戶權(quán)限
1.回收系統(tǒng)權(quán)限
任何擁有指定系統(tǒng)權(quán)限的ADMIN OPTION或擁有權(quán)限管理權(quán)限的用戶都可以從任何用戶上回收指定權(quán)限Revoke create table from tsmith;
這里要注意,ADMIN OPTION不能作為權(quán)限單獨回收。
2.回收Object權(quán)限
為了回收Object權(quán)限,必須符合以下條件:此權(quán)限是由你之前賦與用戶或角色的;你擁有GRANT ANY OBJECT PRIVILEGE權(quán)限。
注意:一個擁有GRANT OPTION的用戶,如果Object對像被回收,則所有由它賦權(quán)的用戶的相應權(quán)限都將被回收
Revoke all on dept from human_resource;
四、賦權(quán)與回收的生效時間
關(guān)于系統(tǒng)權(quán)限或Object權(quán)限的賦權(quán)與回收都是立即生效的。將角色同授予某個用戶或從用戶回收將在下一次新建session時生效,除非使用Set指定。在session中,用戶可以使用set role來改變role:Set role ckerk identified by bicentennial; 如果用戶有密碼則必須使用identified by 指定關(guān)閉所有角色Set role none。
五、指定用戶缺省權(quán)限
當用戶登陸時,oracle自動將用戶缺省角色中的權(quán)限賦與用戶。Alter user jane default role payclerk,pettycash
【編輯推薦】