監査オプションの指定
Oracle DBAは、SQL plusを介してaudit文およびnoaudit文を使用して、データベースの監査オプションを構成できます。audit文では次の3つのレベルで監査オプションを設定できます。
表4-1 監査オプション表
レベル | 効果 |
---|---|
文 |
特定の型のデータベース・オブジェクトに影響を与える特定のSQL文または文のグループを監査します。たとえば、AUDIT TABLEは、CREATE TABLE、TRUNCATE TABLE、COMMENT ON TABLEおよびDELETE [FROM] TABLEの各文を監査します。 |
権限 |
指定したシステム権限の下で実行されるSQL文を監査します。たとえば、AUDIT CREATE ANY TRIGGERは、CREATE ANY TRIGGERシステム権限を使用して発行された文を監査します。 |
オブジェクト |
特定のオブジェクトに対する特定の文を監査します(employee表に対するALTER TABLEなど)。 |
audit文を使用して文や権限の監査オプションを設定するには、DBAにAUDIT SYSTEM権限が割り当てられている必要があります。audit文を使用してオブジェクトの監査オプションを設定するには、DBAが監査対象のオブジェクトを所有しているか、Oracle内でAUDIT ANY権限がDBAに割り当てられている必要があります。権限の割当てについては次の項で説明します。
文や権限の監査オプションを設定するaudit文にはBY句を含めることができ、監査する特定のユーザーまたはアプリケーション・プロキシのリストを指定できます。こうすることで、文と権限の監査オプションの範囲が限定されます。
次に監査文の例をいくつか示します。これらは、データベース内で指定する監査設定の基礎として自由に使用してください。すべての監査設定が完了すると、Oracleデータベース・インスタンスのモニターに使用するOracle(SQLトレース)エージェント・モジュールを使用してアプリケーション・ポリシーを作成できるようになります。
文の監査オプション(ユーザー・セッション)
次の文は、BillおよびLoriというユーザーのユーザー・セッションを監査します。
AUDIT SESSION BY scott, lori;
権限の監査オプション
次の文は、DELETE ANY TABLEシステム権限の、成功および失敗したすべての使用を監査します。
AUDIT DELETE ANY TABLE BY ACCESS WHENEVER NOT SUCCESSFUL;
オブジェクトの監査オプション
次の文は、ユーザーjwardが所有するdept表に対する、成功したすべてのSELECT文、INSERT文およびDELETE文を監査します。
AUDIT SELECT, INSERT, DELETE ON jward.dept BY ACCESS WHENEVER SUCCESSFUL;
Oracle Audit Monitorの構成例
次のコマンドは、すべての基本文を監査します。それ以外の文は監査しません。
Audit all by access;
次の文は、基本以外のすべての文を監査します。
audit ALTER SEQUENCE, ALTER TABLE, DELETE TABLE, EXECUTE PROCEDURE, GRANT DIRECTORY, GRANT PROCEDURE, GRANT SEQUENCE, GRANT TABLE, GRANT TYPE, INSERT TABLE, LOCK TABLE, UPDATE TABLE by access;
次のコマンドは、文の監査設定を表示します。
SELECT * FROM DBA_STMT_AUDIT_OPTS;
監査構成を指定した後は、Cloud ControlサーバーからOracleデータベース・エンティティ・タイプを使用するリアルタイム・モニタリング・ルールを作成できます。