物件許可權的回收
物件許可權在回收時,並不是擁有授權許可權就可以回收許可權,許可權的回收還與授權使用者有關。
授權物件許可權後的授權者顯示問題:http://yangtingkun.itpub.net/post/468/506156
使用者即使擁有授權和回收的許可權,也不能回收其他GRANTOR的授權,甚至是物件的OWNER也不行:
SQL> CREATE USER U1 IDENTIFIED BY PASSWORD;
使用者已建立。
SQL> GRANT SELECT ON T TO U1;
授權成功。
SQL> GRANT SELECT ON T TO TEST WITH GRANT OPTION;
授權成功。
SQL> CONN TEST/PASSWORDT
已連線。
SQL> GRANT SELECT ON YANGTK.T TO U1;
授權成功。
SQL> CONN YANGTK/YANGTK
已連線。
SQL> SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE IN ('TEST', 'U1');
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRA HIE
---------- ------------------------------ ---------- ---------- ---------- --- ---
U1 YANGTK T TEST SELECT NO NO
TEST YANGTK T YANGTK SELECT YES NO
U1 YANGTK T YANGTK SELECT NO NO
SQL> REVOKE SELECT ON T FROM U1;
撤銷成功。
SQL> SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE IN ('TEST', 'U1');
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRA HIE
---------- ------------------------------ ---------- ---------- ---------- --- ---
U1 YANGTK T TEST SELECT NO NO
TEST YANGTK T YANGTK SELECT YES NO
SQL> REVOKE SELECT ON T FROM U1;
REVOKE SELECT ON T FROM U1
*
第 1 行出現錯誤:
ORA-01927: 無法 REVOKE 您未授權的許可權
同一張表可以被兩個使用者授予同樣的許可權,而回收的時候只能回收當前使用者的授權。上面展示了YANGTK使用者不能回收TEST使用者的授權,同樣TEST也不能回收YANGTK的授權:
SQL> GRANT SELECT ON T TO U1;
授權成功。
SQL> CONN TEST/PASSWORDT
已連線。
SQL> REVOKE SELECT ON YANGTK.T FROM U1;
撤銷成功。
SQL> REVOKE SELECT ON YANGTK.T FROM U1;
REVOKE SELECT ON YANGTK.T FROM U1
*
第 1 行出現錯誤:
ORA-01927: 無法 REVOKE 您未授權的許可權
SQL> CONN YANGTK/YANGTK
已連線。
SQL> SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE IN ('TEST', 'U1');
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRA HIE
---------- ------------------------------ ---------- ---------- ---------- --- ---
U1 YANGTK T YANGTK SELECT NO NO
TEST YANGTK T YANGTK SELECT YES NO
不過對於OWNER使用者可以透過級聯的方法回收許可權:
SQL> CONN TEST/PASSWORDT
已連線。
SQL> GRANT SELECT ON YANGTK.T TO U1;
授權成功。
SQL> CONN YANGTK/YANGTK
已連線。
SQL> SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE IN ('TEST', 'U1');
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRA HIE
---------- ------------------------------ ---------- ---------- ---------- --- ---
U1 YANGTK T YANGTK SELECT NO NO
TEST YANGTK T YANGTK SELECT YES NO
U1 YANGTK T TEST SELECT NO NO
SQL> REVOKE SELECT ON T FROM TEST;
撤銷成功。
SQL> GRANT SELECT ON T TO TEST WITH GRANT OPTION;
授權成功。
SQL> REVOKE SELECT ON T FROM U1;
撤銷成功。
SQL> SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE IN ('TEST', 'U1');
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRA HIE
---------- ------------------------------ ---------- ---------- ---------- --- ---
TEST YANGTK T YANGTK SELECT YES NO
將TEST的許可權回收後,TEST授權給U1的許可權自動被回收,當再次授權給TEST WITH GRANT OPTION許可權後,TEST對U1的授權不會自動恢復。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-675065/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle的物件許可權、角色許可權、系統許可權Oracle物件
- 許可權授予、回收命令
- 擁有GRANT ANY OBJECT PRIVILEGE許可權時的許可權回收Object
- 【許可權管理】Oracle中檢視、回收使用者許可權Oracle
- unlimited tablespace許可權的授予和回收MIT
- Oracle 使用者、物件許可權、系統許可權Oracle物件
- 自定義許可權物件物件
- oracle受權與回收許可權grant和revokeOracle
- SAP自定義許可權物件物件
- 系統許可權傳遞和物件許可權傳遞的測試物件
- 檢視角色裡包含的系統許可權、物件許可權和角色物件
- Oralce public access 許可權的回收後影響分析
- oracle常見受權與回收許可權 grant和revokeOracle
- 使用者物件許可權管理物件
- 學習筆記 物件許可權筆記物件
- audit物件許可權時的not exists選項!物件
- mysql操作命令梳理(4)-grant授權和revoke回收許可權MySql
- 使用者有connect,resource,dba角色許可權後回收dba許可權導致無UNLIMITED TABLESPACE許可權造成業務中斷MIT
- PostgreSQL物件許可權如何在後設資料中獲取-許可權解讀、定製化匯出許可權SQL物件
- AIX 的許可許可權(轉)AI
- 授權物件許可權後的授權者顯示問題物件
- 系統,物件,角色許可權簡析物件
- 許可權之選單許可權
- SAP PLM文件許可權物件的控制級別物件
- 如何用 Vue 實現前端許可權控制(路由許可權 + 檢視許可權 + 請求許可權)Vue前端路由
- linux 檔案許可權 s 許可權和 t 許可權解析Linux
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.2許可權授予與回收(3)MySql資料庫
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.2許可權授予與回收(2)MySql資料庫
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.2許可權授予與回收(1)MySql資料庫
- 系統、角色、物件相關許可權字典物件
- oracle物件與系統許可權小測Oracle物件
- MongoDB 4.0檢視,更新和回收角色許可權步驟MongoDB
- 許可權系統:一文搞懂功能許可權、資料許可權
- Oracle資料庫的系統和物件許可權Oracle資料庫物件
- Linux-許可權管理(ACL許可權)Linux
- 【自然框架】許可權的視訊演示(二):許可權到欄位、許可權到記錄框架
- PHP 物件導向 (一)許可權修飾符PHP物件
- Android系統許可權和root許可權Android