はじめに
監査ポリシー及び監査の実施状況を確認するクエリと、実際の監査を実行するためのクエリを記載する。
前提
統合監査とは
統合監査とは、Oracle Database 12Cから新しく実装された監査方法。
11gまでの監査は、監査方法によってログの残る場所が違ったため、利用しにくかった。
(12Cからは、旧来の監査を従来型監査と呼んでいる。)
12Cからは、1つのテーブルに全ての監査ログが残るようになったため、監査ログの利便性が向上した。
実行環境
実行環境は以下となる。
※他の環境及びバージョンでは、動作しない可能性がある。
- OSバージョン
- Windows Server 2016 Standard
- Oracle Databaseバージョン
- Oracle Database 12C
事前準備
統合監査をメインで利用する場合、データベース上で以下の設定を先におこなう。
※設定をしなくても利用はできるが、12Cでは、混合監査がデフォルトのため、従来型監査も有効になっている。ログの管理面から統合監査だけを有効にした方が良い。
データベース設定
1.Unified Auditingモードへの変更を実施
1-1.監査モードの確認
※値が”FALSE”で、混合監査になっていることを確認
SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing'
1-2.データベースをシャットダウン
SHUTDOWN IMMEDIATE
1-3.リスナー及びOracleサービスを停止
※停止はWindowsサーバのため、サービスから実施する。
※”Oracle”とつくサービスは全て停止すること。
1-4.%ORACLE_HOME%/bin/orauniaud12.dll.dblをorauniaud12.dllに変更
※ファイル名を変更する
1-5.リスナー起動
※サービスから起動する。
1-6.データベースを起動
※サービスから起動する。
1-7.監査モードを確認
※値が”TRUE”になっていれば、統合監査モードになっている
SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing'
監査の実施
ここでは主要なポリシー作成について記載する。
ログオンを監査する方法
監査ポリシーの作成
ポリシー名は好きな名前を指定する。
CREATE AUDIT POLICY ポリシー名 ACTIONS LOGON
監査ポリシーの有効化
ポリシー名は作成時の名前を入れ、ユーザ名は監査を行いたいユーザ名を指定する。
※BY句を外すと、データベース上の全てのログオンが監査される。
AUDIT POLICY ポリシー名 BY ユーザ名
監査の終了
NOAUDIT POLICY ポリシー名 BY ユーザ名
監査結果の確認
SELECT *
FROM UNIFIED_AUDIT_TRAIL
WHERE UNIFIED_AUDIT_POLICIES = 'ポリシー名'
AND DBUSERNAME = 'ユーザ名'
オブジェクトを監査する方法
監査ポリシーの作成
ポリシー名は好きな名前を指定する。
オブジェクトに対するアクションは、個別に設定できる。
※アクション名はカンマ区切りで指定できないため注意
CREATE AUDIT POLICY ポリシー名
ACTIONS SELECT ON スキーマ名.オブジェクト名,
UPDATE ON スキーマ名.オブジェクト名,
DELETE ON スキーマ名.オブジェクト名,
INSERT ON スキーマ名.オブジェクト名
監査ポリシーの有効化
ポリシー名は作成時の名前を入れ、ユーザ名は監査を行いたいユーザ名を指定する。
※BY句を外すと、オブジェクトに対するデータベース上の全てのユーザ操作が監査される。
AUDIT POLICY ポリシー名 BY ユーザ名
監査の終了
監査終了時は、不要であれば、対象オブジェクトの監査ポリシーを消しておくと、ゴミが残らない。
NOAUDIT POLICY ポリシー名 BY ユーザ名
DROP AUDIT POLICY ポリシー名
監査結果の確認
SELECT *
FROM UNIFIED_AUDIT_TRAIL
WHERE UNIFIED_AUDIT_POLICIES = 'ポリシー名'
監査ポリシーと有効化の確認
監査ポリシーの確認
現在、データベース上にどのような監査ポリシーが作成されているか確認するクエリは以下となる。
SELECT *
FROM AUDIT_UNIFIED_POLICIES
監査ポリシーの有効・無効確認
データベース上に存在するポリシーで、監査が実施されているか否かを確認するクエリは以下となる。
SELECT *
FROM AUDIT_UNIFIED_ENABLED_POLICIES
まとめ
上記を利用することで、簡単な監査を行うことができる。
統合監査には他にもロール単位での監査設定など、様々な監査方法が提供されているため、公式ドキュメントを確認すると良い。
https://docs.oracle.com/cd/F19136_01/sqlrf/AUDIT-Unified-Auditing.html
コメント