oracle權限一則

oracle的權限分爲系統權限與對像權限兩種.系統權限主要用於數據庫的管理任務,權利比較大,
而對像權限主要用於數據庫內的對像,如表等。這裏只記錄授權與回收的SQL方法。
系統權限授權:grant create session/dba to a [with admin option];
對像權限授權:grant select on sys.anran to a [with grant option];

這裏有兩個選項with admin option/with grant option,其實功能差不多,只是一個用在系統
權限授權,另一個用在對像權限授權。帶有這兩種選擇的grantee(被授權者)有授予其他人該權限的
能力。

需要什麼權限纔可以給別授權呢?前面是一種情況,帶有with admin option/with grant option選項的grantee.

還有一種情況是:對於系統權限來說擁有GRANT ANY PRIVILEGE權限的grantee(如果是授予角色[grant
 a_role to a],則是擁有GRANT ANY ROLE權限的grantee,這裏可以把角色理解爲一種系統權限的)有權grant。
對於對像權限來說是擁有GRANT ANY OBJECT PRIVILEGE權限的grantee。
系統權限回收:revoke create session from a;
對像權限回收:revoke select on sys.anran from a;

語法基本相同,但revoke在回收系統權限時沒有cascade功能,而收回對像權限時卻是一插到底。
比如:a授權給用戶b系統權限帶有with admin option,b又授權給用戶c該權限,當用戶a從用戶b收回權限時,
並不會收回用戶c的權限,有點覆水難收的意思,但如果是對像權限卻會回收C的權根.

需要什麼權限纔可以收回權限呢?對於系統權限帶有with admin option選項的grantee,當然可以,無論權限
是否是他親自授予。但擁有GRANT ANY PRIVILEGE權限的人卻沒有這個能力。但有一個例外擁有GRANT ANY ROLE 權限的人可以revoke any role。

對於對像權限帶有with grant option選項的grantee,當然可以,但是權限必須是他親自授予的。另外擁有
GRANT ANY OBJECT PRIVILEGE 權限的grantee也具有此能力。

哎呀,真夠頭大的。
 

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