Oracle 允許僅具備基表 SELECT 權限的用戶,透過建立特製視圖,對該基表執行 INSERT/UPDATE/DELETE。根因在於視圖 DML 處理邏輯未正確檢查基表主鍵約束與用戶實際權限。由於大多數資料字典表無主鍵,字典層面影響有限,但業務表風險極高。
-- 用戶 dbsnmp 僅有 SELECT ANY DICTIONARY
SQL> DELETE FROM sys.registry$; -- ORA-01031 權限不足
SQL> CREATE OR REPLACE VIEW e AS SELECT [...特製條件...]; -- 成功
SQL> DELETE FROM e; -- 實際刪除 17 筆字典記錄!
CREATE VIEW、CREATE DATABASE LINK 等高風險系統權限。AUDIT CREATE VIEW、AUDIT DELETE/INSERT/UPDATE ON 關鍵表 BY ACCESS,異常視圖建立與 DML 即時告警。發布時 Oracle 尚未釋出官方修補程式。請持續關注 Oracle Security Center 發布的 Critical Patch Update (CPU) 或 Patch Set Update (PSU),並納入定期修補週期。