Oracle-12c

審計 Oracle 12.2 中模式上的所有插入、刪除、更新和選擇語句

  • March 19, 2021

我無法理解如何創建統一審計策略來審計對特定模式中的所有對象執行的所有 INSERT、UPDATE、DELETE 和 SELECT 語句。

目標是跟踪逆向工程任務的特定 PL/SQL 過程中涉及的表和視圖。

對於我從文件中了解到的內容,唯一的選擇是指定要在策略中跟踪的每個表/視圖。創建審計策略語句是否有“審計架構內的所有對象”構造?

沒有“審核所有對象”設置。在統一審計中,執行以下操作:

-- create the policy
create audit policy my_policy actions all on hr.regions;
alter audit policy my_policy actions all on hr.locations;
...

-- enable the policy
audit policy my_policy;

如果你有一個包含很多表的模式,你可以使用 SQL 來建構你的腳本,如下所示:

select 'alter audit policy hr_policy actions all on '||owner||'.'||table_name||';'
 from dba_tables
where owner in ('HR','OE');

您描述了傳統審計。對於統一審計,參數 audit_trail 沒有任何意義,實際上 Oracle 不考慮。如前所述,通過統一審計,您必須創建審計策略。Oracle 不寫入 SYS.AUD $ with unified auditing. It writes to audsys.aud $ 作業系統上的統一或溢出文件(如果數據庫不可訪問)。您的數據可通過從 audsys.aud 中選擇的視圖 Unified_audit_trail 可見 $ unified and v $ Unified_audit_trail(溢出文件)。

要審核表 scott.t1 上的所有插入、更新、刪除、選擇,您可以使用類似

create audit policy T1_AUDIT  
      ACTIONS select on scott.t1,  
              insert on scott.t1,  
              update on scott.t1,  
              delete on scott.t1;  
 
audit policy T1_AUDIT;

引用自:https://dba.stackexchange.com/questions/268718