DBAtlas · データベース運用アトラス

Unified Auditingポリシーを作成し、条件付きで有効化、レコードを確認、削除

Oracleセキュリティ

コマンド

-- 1) Object + condition based policy (excluding the batch module):
CREATE AUDIT POLICY pol_customer_dml
  ACTIONS SELECT ON customer_app.customer,
          UPDATE ON customer_app.customer,
          DELETE ON customer_app.customer
  WHEN 'SYS_CONTEXT(''USERENV'',''MODULE'') NOT LIKE ''batch%'''
  EVALUATE PER SESSION;

-- 2) Privileged operations policy:
CREATE AUDIT POLICY pol_ddl_priv
  PRIVILEGES DROP ANY TABLE, ALTER SYSTEM
  ACTIONS DROP USER, ALTER USER, CREATE USER;

-- 3) Enable:
AUDIT POLICY pol_customer_dml EXCEPT customer_app;   -- everyone except the schema owner
AUDIT POLICY pol_ddl_priv WHENEVER SUCCESSFUL;
AUDIT POLICY ORA_LOGON_FAILURES WHENEVER NOT SUCCESSFUL;

-- 4) Which policy is enabled for whom?
SELECT policy_name, enabled_option, entity_name, success, failure
FROM   audit_unified_enabled_policies ORDER BY policy_name;
SELECT policy_name, audit_option, object_schema, object_name, audit_condition
FROM   audit_unified_policies WHERE policy_name LIKE 'POL_%';

-- 5) Records:
SELECT event_timestamp, dbusername, action_name, object_schema, object_name,
       return_code, unified_audit_policies, os_username, userhost
FROM   unified_audit_trail
WHERE  event_timestamp > SYSTIMESTAMP - INTERVAL '1' DAY
  AND  unified_audit_policies LIKE '%POL_%'
ORDER  BY event_timestamp DESC;
-- 19c (queued-write): EXEC DBMS_AUDIT_MGMT.FLUSH_UNIFIED_AUDIT_TRAIL;  (not in 23ai)

-- 6) Disable and remove:
NOAUDIT POLICY pol_customer_dml;
NOAUDIT POLICY pol_ddl_priv;
DROP AUDIT POLICY pol_customer_dml;
DROP AUDIT POLICY pol_ddl_priv;

概要

Unified Auditingはすべての監査レコードを単一の証跡(AUDSYSスキーマ、UNIFIED_AUDIT_TRAIL)に収集する。ポリシーはオブジェクトアクション、システム権限、アクションごとに定義され、WHEN条件とBY/EXCEPTユーザーリストでノイズを減らす。

使用する場面

機密表へのアクセスの記録、特権DDLと権限変更の監視、ログオン失敗の確認、監査要件への対応に。

注意

追加ライセンス不要。高負荷の表でSELECTを監査すると大量のレコードが生成されSYSAUXが肥大化する。条件とEXCEPTで絞り込み、DBMS_AUDIT_MGMT(CLEAN_AUDIT_TRAIL、SET_LAST_ARCHIVE_TIMESTAMP)でアーカイブ/クリーンアップをスケジュールする。有効なポリシーは削除できない(ORA-46361)。先にNOAUDITを実行する。ポリシーの変更は新しいセッションで有効になる。19cはデフォルトで混合モードで動作するため、従来のAUDIT_TRAILのレコードも書き込まれる場合がある。

DBAtlas で開く →

関連項目