Oracle數據庫將權限分爲兩大類:系統權限和對象權限。系統權限是在系統級對數據庫進行存取和使用的機制。對象權限是指某一用戶對其餘用戶的表、視圖、序列、存儲過程、函數、包等的操做權限。
授予系統權限
GRANT命令的語法以下:
sql
GRANT system_privilege |role To user |role |PUBLIC [WITH ADMIN OPTION]
其中:
system_privilege:表示Oracle系統權限,系統權限是一組約定的保留字,若是可以建立表結構,則爲CREATE TABLE;
role:角色
user:具體保留字,或者是一系列的用戶。
PUBLIC:保留字,表明Oracle系統的全部所用戶;
WITH ADMIN OPTION:表示被受權者能夠將權限授予另外的用戶。數據庫
示例:函數
授予鏈接和開發系統權限
spa
grant connect,resource to wang
系統權限收回
REVOKE命令的語法
code
REVOKE system_privilege|role from user|role|public REVOKE object_privilege|all on schema.object from user|role|public CASCADE CONSTRAINTS
其中
system_privilege:系統權限或角色;
object_privilege:對象的權限;
role:角色;
PUBLIC:保留字,表明Oracle系統全部的用戶 ;
CASCADE CONSTRITRAINTS:表示有關聯的權限也被撤銷。對象
若是數據庫管理員用GRANT命令給用戶A授予系統權限時帶有WITH ADMIN OPTION選項,則該用戶A有權將系統權限再次授予另外的用戶B。在這種狀況下,若是數據庫管理員用REVOKE命令撤銷A用戶的系統權限時,用戶B的系統受權仍然有效。開發
示例:table
若是用戶wang具備ALTER TABLESPACE的系統權限,則將給權限撤銷。
class
revoke alter tablespace from wang
從SCOTT用戶撤銷CREATE ANY INDEX的系統權限。
object
revoke CREATE ANY FROM SCOTT
授予對象權限
GRANT命令語法以下:
GRANT object_privilege|ALL column ON schema.object TO user|role|public [WITH GRANT OPTION]|[WITH HIERARCHY OPTION]
其中,
object_privilege:表示對象的權限,能夠是ALTER,EXECUTE,INDEX,INSERTRREFERENCES,SELECT,UPDATE;
Role:角色名;
user:被授予的用戶名;
WITH ADMIN OPTION:表示被授予者可將系統權限授予其餘的用戶;
WITH HIERARCHY OPTION:在對象的字對象(在視圖上在創建視圖)上受權給用戶。
撤銷對象權限,REVOKE語句語法:
REVOKE object_privilege|ALL ON schema.object from user|role|public CASCADE CONSTRAINTS
其中:
object_privilege:表示對象的權限;
PUBLIC:保留字,表明Oracle系統的全部用戶;
CASLCADE CONSTRAINTS:表示有關聯的權限也被撤銷。
Oralce 11g用於存放用戶、系統權限、對象權限有關的數據字典。