擁有GRANT ANY OBJECT PRIVILEGE許可權時的許可權回收
前一篇介紹了使用者只能回收自己授權的許可權,這篇繼續討論擁有GRANT ANY OBJECT PRIVILEGE許可權時的回收許可權。
授權物件許可權後的授權者顯示問題:http://yangtingkun.itpub.net/post/468/506156
物件許可權的回收:http://yangtingkun.itpub.net/post/468/506207
這裡繼續使用《授權物件許可權後的授權者顯示問題》中的例子,來演示擁有GRANT ANY OBJECT PRIVILEGE許可權後物件許可權的回收。
SQL> SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE = 'U_GRANTEE';
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRA HIE
-------------------- ---------- ---------- -------------------- ---------- --- ---
U_GRANTEE YANGTK T U_WITH_GRANT_AND_ANY DELETE NO NO
U_GRANTEE YANGTK T U_WITH_GRANT INSERT NO NO
U_GRANTEE YANGTK T YANGTK UPDATE NO NO
U_GRANTEE YANGTK T YANGTK SELECT NO NO
使用者U_GRANTEE的SELECT許可權是表的擁有者YANGTK授權的;INSERT許可權是擁有WITH GRANT OPTION的U_WITH_GRANT使用者授權的;UPDATE許可權是擁有GRANT ANY OBJECT PRIVILEGE許可權的U_GRANT_ANY使用者授權的,這時GRANTOR顯示的仍然是表的OWNER;最後DELETE許可權是擁有WITH GRANT OPTION和GRANT ANY OBJECT PRIVILEGE許可權的U_WITH_GRANT_AND_ANY使用者授權的。
在上一篇許可權的回收提到了一個使用者可以被多個使用者授予相同的許可權,從而在資料字典中可以查詢到多條記錄。那麼擁有GRANT ANY OBJECT PRIVILEGE許可權的使用者是如何回收授權的:
SQL> CONN U_GRANT_ANY/PASSWORD
已連線。
SQL> REVOKE UPDATE ON YANGTK.T FROM U_GRANTEE;
撤銷成功。
SQL> REVOKE SELECT ON YANGTK.T FROM U_GRANTEE;
撤銷成功。
SQL> CONN YANGTK/YANGTK
已連線。
SQL> SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE = 'U_GRANTEE';
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRA HIE
-------------------- ---------- ---------- -------------------- ---------- --- ---
U_GRANTEE YANGTK T U_WITH_GRANT_AND_ANY DELETE NO NO
U_GRANTEE YANGTK T U_WITH_GRANT INSERT NO NO
由於擁有GRANT ANY OBJECT PRIVILEGE系統許可權的使用者授權後,顯示的GRANTOR為物件的OWNER,因此這種使用者可以回收GRANTOR為OWNER的授權,即使這個授權並非是當前使用者授權的。
這種情況其實比較簡單,對於同時擁有GRANT ANY OBJECT PRIVILEGE和WITH GRANT OPTION許可權的使用者而言,回收物件許可權更復雜一些:
SQL> GRANT DELETE ON T TO U_GRANTEE;
授權成功。
SQL> SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE = 'U_GRANTEE';
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRA HIE
-------------------- ---------- ---------- -------------------- ---------- --- ---
U_GRANTEE YANGTK T U_WITH_GRANT_AND_ANY DELETE NO NO
U_GRANTEE YANGTK T U_WITH_GRANT INSERT NO NO
U_GRANTEE YANGTK T YANGTK DELETE NO NO
SQL> CONN U_WITH_GRANT_AND_ANY/PASSWORD
已連線。
SQL> REVOKE DELETE ON YANGTK.T FROM U_GRANTEE;
撤銷成功。
SQL> CONN YANGTK/YANGTK
已連線。
SQL> SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE = 'U_GRANTEE';
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRA HIE
-------------------- ---------- ---------- -------------------- ---------- --- ---
U_GRANTEE YANGTK T U_WITH_GRANT INSERT NO NO
U_GRANTEE YANGTK T YANGTK DELETE NO NO
SQL> CONN U_WITH_GRANT_AND_ANY/PASSWORD
已連線。
SQL> REVOKE DELETE ON YANGTK.T FROM U_GRANTEE;
撤銷成功。
SQL> CONN YANGTK/YANGTK
已連線。
SQL> SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE = 'U_GRANTEE';
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRA HIE
-------------------- ---------- ---------- -------------------- ---------- --- ---
U_GRANTEE YANGTK T U_WITH_GRANT INSERT NO NO
這種使用者回收物件許可權時,會先回收GRANTOR為當前使用者的許可權,如果再次執行回收操作或者GRANTOR為當前使用者的授權不存在時,會回收GRANTOR為OWNER的許可權。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-675132/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 系統許可權 GRANT ANY OBJECT PRIVILEGE的作用!Object
- oracle受權與回收許可權grant和revokeOracle
- Oracle 許可權(grant、revoke)Oracle
- oracle常見受權與回收許可權 grant和revokeOracle
- mysql操作命令梳理(4)-grant授權和revoke回收許可權MySql
- 物件許可權的回收物件
- Oracle users / 許可權 / grant privOracle
- Laravel 日誌有時候有許可權有時候沒有許可權?Laravel
- 許可權授予、回收命令
- 【許可權管理】Oracle中檢視、回收使用者許可權Oracle
- Oracle的物件許可權、角色許可權、系統許可權Oracle物件
- 許可權之選單許可權
- 如何用 Vue 實現前端許可權控制(路由許可權 + 檢視許可權 + 請求許可權)Vue前端路由
- linux 檔案許可權 s 許可權和 t 許可權解析Linux
- AIX 的許可許可權(轉)AI
- 使用者有connect,resource,dba角色許可權後回收dba許可權導致無UNLIMITED TABLESPACE許可權造成業務中斷MIT
- unlimited tablespace許可權的授予和回收MIT
- 如果得知無許可權的 Authorization ObjectObject
- Linux-許可權管理(ACL許可權)Linux
- asm createdisk時提示沒有許可權ASM
- 12c 新增許可權Inherit privilege說明
- Grant許可權導致執行計劃失效
- Android系統許可權和root許可權Android
- 查詢沒有許可權但資料字典中顯示有許可權
- 【自然框架】許可權的視訊演示(二):許可權到欄位、許可權到記錄框架
- mysql許可權MySql
- MySQL 許可權MySql
- ORACLE許可權Oracle
- 有贊許可權系統
- mongoDB安裝時提示沒有許可權MongoDB
- 基本Linux許可權提升(Basic Linux Privilege Escalation)Linux
- 關於under any table/view 許可權的解釋View
- 和物件許可權相關的表table_privilege_map物件
- Linux 許可權管理之目錄許可權限制Linux
- Oracle 使用者、物件許可權、系統許可權Oracle物件
- 【LIUNX】目錄或檔案許可權,許可權授予
- Guest許可權突破——許可權提升方法總結(轉)
- django開發之許可權管理(一)——許可權管理詳解(許可權管理原理以及方案)、不使用許可權框架的原始授權方式詳解Django框架