Oracleの標準監査(Standard Auditing)は、Oracleデータベースにおける監査機能の一つで、特定のデータベース操作やSQLステートメントを追跡・記録するために使用されます。これにより、セキュリティやコンプライアンスを目的として、データベース上の重要な操作やユーザーの活動を監視することができます。
主な特徴
1. SQLステートメントや操作の監視:
-
SQL文レベルの監査: 特定のSQL文(例:
SELECT
,INSERT
,UPDATE
,DELETE
)が実行された際にその内容を監査することが可能です。 -
権限・オブジェクトレベルの監査: 特定のデータベースオブジェクトに対してアクセスが行われたときや、ユーザーが権限を行使した場合も監視可能です。
2. 監査の有効化と設定:
- 監査を有効にするには、Oracleデータベースの初期化パラメータ
AUDIT_TRAIL
を設定します。例えば、データベースに監査データを保存する場合はDB
、オペレーティングシステムのファイルに保存する場合はOSを設定します。 - 監査は以下のコマンドで個別に設定できます。
AUDIT <SQL文やオブジェクト> BY <ユーザー>;
3. 監査データの出力先:
- 監査データは、データベーステーブルやOSの監査ファイルに保存できます。
- データベースに保存する場合:
AUD$
テーブルに記録されます。 - OSに保存する場合: 監査ログはファイル形式で、Oracleサーバの指定されたディレクトリに保存されます(通常は
$ORACLE_BASE/admin/<DB_NAME>/adump
)。
- データベースに保存する場合:
4. 監査対象の柔軟な選択:
- 監査はデータベース全体、特定のユーザー、あるいは特定のオブジェクト(テーブルやビューなど)に限定して実行することができます。
- 例えば、ある特定のユーザーが
SELECT
文を実行した場合のみ監査することも可能です。
設定例
- セッションの作成に対する監査:
AUDIT CREATE SESSION;
- 特定のオブジェクトに対するSELECT文の監査:
AUDIT SELECT ON employees BY scott;
- すべてのユーザーによるINSERT、UPDATE、DELETEの監査:
AUDIT INSERT, UPDATE, DELETE ON employees;
監査ログの確認
監査が有効になった後、監査データはDBA_AUDIT_TRAIL
ビューなどで確認できます。例えば、次のクエリで監査ログを確認します。
SELECT * FROM DBA_AUDIT_TRAIL;
このビューには、ユーザー名、実行された操作、実行時刻などの監査情報が含まれます。
メリットと用途
- セキュリティの強化: データベースへの不正アクセスや操作を検出し、監査証跡を残すことで、内部および外部からの攻撃に対する防御を強化します。
- コンプライアンス対応: 企業の内部統制や法的要求事項に基づいて、適切な監査ログを収集・保存できます。
まとめ
Oracleの標準監査は、データベース内の活動を詳細に追跡するための強力なツールです。データベースの安全性を確保し、監査要件を満たすために使用されます。標準監査はシンプルで導入しやすいですが、大規模な環境や複雑な要件を持つ場合には、より強力な統合監査(Unified Auditing)が推奨されることがあります。