統合監査(Unified Auditing)難易度 標準無料
統合監査(Unified Auditing)で、HR.EMP への SELECT/UPDATE/DELETE を監査したい。次を実行した後、HR.EMP を実際に UPDATE したが、UNIFIED_AUDIT_TRAIL に該当レコードが記録されない。
SQL> CREATE AUDIT POLICY emp_dml_pol 2 ACTIONS SELECT, UPDATE, DELETE ON hr.emp; Audit policy created. -- (別セッションで) SQL> UPDATE hr.emp SET sal = sal * 1.1 WHERE deptno = 10; SQL> COMMIT; SQL> SELECT * FROM unified_audit_trail 2 WHERE object_name='EMP' ORDER BY event_timestamp; -- 行が返らない
監査レコードが記録されない理由として最も適切なものを選べ。(単一選択)
- A監査ポリシーを作成しただけで有効化していない。
AUDIT POLICY emp_dml_pol;を実行して初めて監査が始まる - B
CREATE AUDIT POLICYは作成と同時に自動的に有効化されるので、記録されないのはAUDIT_TRAIL初期化パラメータがNONEだからである - C統合監査では DML(
UPDATE等)は監査対象にできず、SELECTのみ監査可能なため - D
UNIFIED_AUDIT_TRAILはリアルタイム反映されず、レコードはDBA_AUDIT_TRAIL(旧来ビュー)にしか出ないため
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:A✓Gold監修
解説
統合監査では、監査は2段構えになっている。
- ① ポリシーの定義:
CREATE AUDIT POLICY <名> ACTIONS ...;で「何を監査するか」を定義する。これは定義しただけで、まだ監査は始まらない。 - ② ポリシーの有効化:
AUDIT POLICY <名> [BY <user> | WHENEVER ...];を実行して有効化して初めて、以後の該当操作がUNIFIED_AUDIT_TRAILに記録される。
本問はポリシーを CREATE しただけで AUDIT POLICY emp_dml_pol; を実行していないため、UPDATE しても記録されない。
AUDIT POLICY emp_dml_pol; を実行すれば(以降の操作から)記録される。
補足:純粋統合監査(pure unified auditing)モードでは、旧来の AUDIT_TRAIL 初期化パラメータは無視される(監査の有効/出力先は統合監査の仕組みが制御)。
- B
CREATE AUDIT POLICYは自動有効化されない。さらに統合監査の有効/無効はAUDIT POLICY文で制御し、純粋統合監査ではAUDIT_TRAILパラメータは関与しない。根拠が二重に誤り。 - C統合監査は
SELECTだけでなくUPDATE/DELETE等の DML もACTIONSで監査できる。DML 不可は誤り。 - D有効化済みなら統合監査レコードは
UNIFIED_AUDIT_TRAILに出る。記録されない原因は「ビューの選択ミス」ではなく「ポリシー未有効化」。
ひっかけ: 「ポリシーを作れば監査が始まる」という思い込み。定義(
CREATE)と有効化(AUDIT)は別ステップ。
旧来監査の AUDIT_TRAIL 初期化パラメータの話(B)に引っ張られるのも罠。純粋統合監査ではこのパラメータは無視される。✓Gold 保有者による書き下ろし解説・実機で検証済