この記事では統合監査のポリシー作成方法について解説します。
監査ポリシーの作成方法
統合監査では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
監査ログが正しく出力されていることが確認できました。