統合監査のポリシー作成方法

この記事では統合監査のポリシー作成方法について解説します。

 監査ポリシーの作成方法

統合監査ではCREATE AUDIT POLICY文を使用して監査ポリシーを作成します。

構文は以下の通りです。

CREATE AUDIT POLICY <ポリシー名> ACTIONS <監査対象操作> ON <監査対象オブジェクト>;

監査対象操作にはSELECT、INSERTなどの対象オブジェクトの操作を記載します。

作成したポリシーはAUDIT POLICYコマンドで有効化します。

構文は以下の通りです。

AUDIT POLICY <ポリシー名> BY <監査対象ユーザ名>;

BY句を使用しない場合はすべてのユーザが監査対象となります。

BY句の代わりにEXCEPT句を使用して特定のユーザのみを監査対象から外すように設定することもできます。


 ポリシーの作成例

TESTスキーマのEMP表に対してSELECTを実行した際に監査を行うポリシーを作成します。

SYSユーザでPDBに接続し、ポリシーを作成します。

SQL> CREATE AUDIT POLICY emp_select ACTIONS select ON test.emp;
Audit policy created.

作成したポリシーを確認します。

SQL> SELECT policy_name, audit_option, object_schema, object_name FROM audit_unified_policies WHERE policy_name = 'EMP_SELECT';
POLICY_NAME AUDIT_OPTION OBJECT_SCHEMA OBJECT_NAME
----------- ------------ ------------- -----------
EMP_SELECT  SELECT	 TEST	       EMP

作成したポリシーを全ユーザに対して有効化します。

SQL> AUDIT POLICY emp_select;
Audit succeeded.

有効化したポリシーを確認します。

SQL> SELECT * FROM audit_unified_enabled_policies WHERE policy_name = 'EMP_SELECT';
POLICY_NAME ENABLED_OPTION ENTITY_NAME ENTITY_TYPE SUCCESS FAILURE
----------- -------------- ----------- ----------- ------- -------
EMP_SELECT  BY USER	   ALL USERS   USER	   YES	   YES

全てのユーザに対してポリシーが有効になったことが確認できました。


 監査ログの確認

作成したポリシーの監査ログを確認します。

TESTユーザでEMP表をSELECTします。

その後SYSユーザで監査ログを確認します。

監査ログはUNIFIED_AUDIT_TRAILビューで確認できます。

SQL> SELECT unified_audit_policies, dbusername, action_name, event_timestamp FROM unified_audit_trail WHERE unified_audit_policies = 'EMP_SELECT';
UNIFIED_AUDIT_POLICIES DBUSERNAME ACTION_NAME EVENT_TIMESTAMP
---------------------- ---------- ----------- ----------------------------
EMP_SELECT	       TEST	  SELECT      04-AUG-24 08.33.53.443451 AM

監査ログが正しく出力されていることが確認できました。