Oracle Grant 與 Revoke的用法


 一、權限是用戶對一項功能的執行權力。在Oracle 中,根據系統管理方式不同,將權限分為系統權限 與實體權限 兩類。

系統權限 是指是否被授權用戶可以連接到數據庫上,在數據庫中可以進行哪些系統操作。

實體權限 是指用戶對具體的模式實體 (schema)所擁有的權限。這樣講可以有些模糊。

舉個例子來說:select any table是系統權限,它表示可以查看任何表。而select on table1是實體權限,表示對表table1的查詢權限。

二、見下下面的表


三、系統權限授權命令的使用
語法:
GRANT 權限名 TO 用戶|角色|PUBLIC
其中,PUBLIC表示將權限賦給數據庫中所有的用戶
例:賦給用戶USER1權限CREATE TABLE的授權命令如下:
SQL>GRANT CREATE TABLE TO USER1;
授權語句還可以增加WITH ADMIN OPTION選項,表示被授權的用戶可以將它所得權限賦給其它用戶,如:
SQL>GRANT CREATE TABLE,CREATE VIEW TO USER1,USER2 WITH ADMIN OPTION;
若要了解各用戶所擁有的系統權限,可以查詢數據字典USER_SYS_PRIVS、ROLE_SYS_PRIVS。
若要回收權限,則使用REVOKE命令,如:
SQL>REVOKE CREATE TABLE FROM USER1;

四、實體權限管理
  實體權限是指某一用戶對某一特定schema對象的操作權限。
1.實體權限分類
  不同的實體類型有不同的實體權限,如下表


2.實體權限的授命令
語法如下:
GRANT 實體權限名|ALL TO 用戶|角色|PUBLIC
其中,ALL表示實體的所有實體權限。
如:
SQL>GRANT SELECT ON BOOKS_QUTHORS TO USER1;
以下語句用來查詢表的實體權限的授權信息:
SQL>SELECT * FROM USER_TAB_PRIVES
若要回收實體權限,使用REVOKE,其語法如下:
REVOKE 實體權限名|ALL ON 實體名 FROM 用戶名|角色名|PUBLIC。

      alter any cluster 修改任意簇的權限
  alter any index 修改任意索引的權限
  alter any role 修改任意角色的權限 alter any cluster
  alter any sequence 修改任意序列的權限
  alter any snapshot 修改任意快照的權限
  alter any table 修改任意表的權限
  alter any trigger 修改任意觸發器的權限
  alter cluster 修改擁有簇的權限
  alter database 修改數據庫的權限
  alter procedure 修改擁有的存儲過程權限
  alter profile 修改資源限制簡表的權限
  alter resource cost 設置佳話資源開銷的權限
  alter rollback segment 修改回滾段的權限
  alter sequence 修改擁有的序列權限
  alter session 修改數據庫會話的權限
  alter sytem 修改數據庫服務器設置的權限
  alter table 修改擁有的表權限
  alter tablespace 修改表空間的權限
  alter user 修改用戶的權限
  analyze 使用analyze命令分析數據庫中任意的表、索引和簇
  audit any 為任意的數據庫對象設置審計選項
  audit system 允許系統操作審計
  backup any table 備份任意表的權限
  become user 切換用戶狀態的權限
  commit any table 提交表的權限
  create any cluster 為任意用戶創建簇的權限
  create any index 為任意用戶創建索引的權限
  create any procedure 為任意用戶創建存儲過程的權限
  create any sequence 為任意用戶創建序列的權限
  create any snapshot 為任意用戶創建快照的權限
  create any synonym 為任意用戶創建同義名的權限
  create any table 為任意用戶創建表的權限
  create any trigger 為任意用戶創建觸發器的權限
  create any view 為任意用戶創建視圖的權限
  create cluster 為用戶創建簇的權限
  create database link 為用戶創建的權限
  create procedure 為用戶創建存儲過程的權限
  create profile 創建資源限制簡表的權限
  create public database link 創建公共數據庫鏈路的權限
  create public synonym 創建公共同義名的權限
  create role 創建角色的權限
  create rollback segment 創建回滾段的權限
  create session 創建會話的權限
  create sequence 為用戶創建序列的權限
  create snapshot 為用戶創建快照的權限
  create synonym 為用戶創建同義名的權限
  create table 為用戶創建表的權限
  create tablespace 創建表空間的權限
  create user 創建用戶的權限
  create view 為用戶創建視圖的權限
  delete any table 刪除任意表行的權限
  delete any view 刪除任意視圖行的權限
  delete snapshot 刪除快照中行的權限
  delete table 為用戶刪除表行的權限
  delete view 為用戶刪除視圖行的權限
  drop any cluster 刪除任意簇的權限
  drop any index 刪除任意索引的權限
  drop any procedure 刪除任意存儲過程的權限
  drop any role 刪除任意角色的權限
  drop any sequence 刪除任意序列的權限
  drop any snapshot 刪除任意快照的權限
  drop any synonym 刪除任意同義名的權限
  drop any table 刪除任意表的權限
  drop any trigger 刪除任意觸發器的權限
  drop any view 刪除任意視圖的權限
  drop profile 刪除資源限制簡表的權限
  drop public cluster 刪除公共簇的權限
  drop public database link 刪除公共數據鏈路的權限
  drop public synonym 刪除公共同義名的權限
  drop rollback segment 刪除回滾段的權限
  drop tablespace 刪除表空間的權限
  drop user 刪除用戶的權限
  execute any procedure 執行任意存儲過程的權限
  execute function 執行存儲函數的權限
  execute package 執行存儲包的權限
  execute procedure 執行用戶存儲過程的權限
  force any transaction 管理未提交的任意事務的輸出權限
  force transaction 管理未提交的用戶事務的輸出權限
  grant any privilege 授予任意系統特權的權限
  grant any role 授予任意角色的權限
  index table 給表加索引的權限
  insert any table 向任意表中插入行的權限
  insert snapshot 向快照中插入行的權限
  insert table 向用戶表中插入行的權限
  insert view 向用戶視圖中插行的權限
  lock any table 給任意表加鎖的權限
  manager tablespace 管理(備份可用性)表空間的權限
  references table 參考表的權限
  restricted session 創建有限制的數據庫會話的權限
  select any sequence 使用任意序列的權限
  select any table 使用任意表的權限
  select snapshot 使用快照的權限
  select sequence 使用用戶序列的權限
  select table 使用用戶表的權限
  select view 使用視圖的權限
  unlimited tablespace 對表空間大小不加限制的權限
  update any table 修改任意表中行的權限
  update snapshot 修改快照中行的權限
  update table 修改用戶表中的行的權限
  update view 修改視圖中行的權限


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM