CREATE AUDIT POLICY ステートメントは、現行サーバーの監査ポリシーを定義します。
ポリシーは、監査するカテゴリーを決定します。
その後このポリシーを他のデータベース・オブジェクトに適用して、それらのオブジェクトの使用を監査する方法を決めることができます。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込むか、あるいは対話式に発行することができます。
これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。
許可
このステートメントの許可 ID が持つ特権には、SECADM 権限が含まれている必要があります。
構文
>>-CREATE AUDIT POLICY--policy-name--●--CATEGORIES-------------->
.-,--------------------------------------------------------.
V (1) |
>----------+-ALL-----------------------+--STATUS--+-BOTH----+-+-->
+-AUDIT---------------------+ +-FAILURE-+
+-CHECKING------------------+ +-NONE----+
+-CONTEXT-------------------+ '-SUCCESS-'
| .-WITHOUT DATA-. |
+-EXECUTE--+--------------+-+
| '-WITH DATA----' |
+-OBJMAINT------------------+
+-SECMAINT------------------+
+-SYSADMIN------------------+
'-VALIDATE------------------'
>--●--ERROR TYPE--+-NORMAL-+--●--------------------------------><
'-AUDIT--'
注:
- カテゴリーはそれぞれ 2 度以上指定できず (SQLSTATE 42614)、ALL が指定されている場合にはその他のカテゴリーを指定できません (SQLSTATE 42601)。
説明
- policy-name
- 監査ポリシーの名前を指定します。
これは、1 部構成の名前です。
これは、SQL ID です (通常 ID または区切り ID)。
policy-name はカタログで既に記述されている監査ポリシーを識別するものであってはなりません (SQLSTATE 42710)。
名前を文字 SYS で始めることはできません (SQLSTATE 42939)。
- CATEGORIES
- 状況が指定される 1 つ以上の監査カテゴリーのリスト。
ALL が指定されない場合、明示的に指定されないカテゴリーの STATUS は NONE に設定されます。
- ALL
- すべてのカテゴリーを同じ状況に設定します。
EXECUTE カテゴリーは WITHOUT DATA です。
- AUDIT
- 監査設定値が変更された場合、または監査ログへのアクセスがあった場合に、レコードが生成されます。
- CHECKING
- データベース・オブジェクトまたは関数へのアクセス試行またはその操作試行の許可検査中にレコードを生成します。
- CONTEXT
- データベース操作が実行されたときの操作コンテキストを示すレコードを生成します。
- EXECUTE
- SQL ステートメントの実行を示すレコードを生成します。
- WITHOUT DATA または WITH DATA
- 任意のホスト変数およびパラメーター・マーカーに指定される入力データ値を EXECUTE カテゴリーの一部としてログに記録するかどうかを指定します。
- WITHOUT DATA
- 任意のホスト変数およびパラメーター・マーカーに指定される入力データ値は EXECUTE カテゴリーの一部としてログに記録されません。
WITHOUT DATA はデフォルトです。
- WITH DATA
- 任意のホスト変数およびパラメーター・マーカーに指定される入力データ値は EXECUTE カテゴリーの一部としてログに記録されます。
すべての入力値がログに記録されるわけではありません。
特に、LOB、LONG、XML、および構造化タイプのパラメーターは NULL 値となります。
日付、時刻、およびタイム・スタンプの各フィールドは ISO 形式でログに記録されます。
入力データ値はログに記録される前にデータベース・コード・ページに変換されます。
コード・ページの変換に失敗してもエラーは戻されず、変換前のデータがログに記録されます。
- OBJMAINT
- データ・オブジェクトが作成またはドロップされたときにレコードを生成します。
- SECMAINT
- オブジェクト特権、データベース特権、または DBADM 権限が付与されたとき、または取り消されたときにレコードを生成します。
データベース・マネージャーのセキュリティー構成パラメーター sysadm_group、sysctrl_group、または sysmaint_group が変更されたときにもレコードが生成されます。
- SYSADMIN
- SYSADM、SYSMAINT、または SYSCTRL の権限を必要とする操作が実行された時点で、レコードが生成されます。
- VALIDATE
- ユーザーが認証されたとき、またはユーザーに関連したシステム・セキュリティー情報が取得されたときにレコードを生成します。
- STATUS
- 指定されたカテゴリーの状況を指定します。
- BOTH
- 成功したイベントと失敗したイベントがどちらも監査されます。
- FAILURE
- 失敗したイベントだけが監査されます。
- SUCCESS
- 成功したイベントだけが監査されます。
- NONE
- このカテゴリーのイベントは監査されません。
- ERROR TYPE
- 監査エラーを戻すか、無視するかを指定します。
- NORMAL
- 監査によって生成されたエラーはすべて無視され、実行される操作に関連したエラーの SQLCODE だけがアプリケーションに戻されます。
- AUDIT
- 監査機能自体で発生したエラーを含む、すべてのエラーがアプリケーションに戻されます。
規則
- AUDIT 排他 SQL ステートメントの後は、COMMIT または ROLLBACK ステートメントでなければなりません (SQLSTATE 5U021)。
AUDIT 排他 SQL ステートメントは次のとおりです。
- AUDIT
- CREATE AUDIT POLICY、ALTER AUDIT POLICY、または DROP (AUDIT POLICY)
- DROP (監査ポリシーと関連付けられる場合は ROLE または TRUSTED CONTEXT)
- AUDIT 排他 SQL ステートメントをグローバル・トランザクション (例えば XA トランザクション) 内で発行することはできません (SQLSTATE 51041)。
注
- データベース・パーティション全体を通じて、同時に実行できる非コミットの AUDIT 排他 SQL ステートメントは 1 つのみです。
非コミットの AUDIT 排他 SQL ステートメントが実行されている場合、後続の AUDIT 排他 SQL ステートメントは、現行の AUDIT 排他 SQL ステートメントがコミットまたはロールバックされるまで待機します。
- 変更はシステム・カタログに書き込まれますが、コミットされるまでは有効になりません。
これは、ステートメントを発行する接続の場合でも当てはまります。
例
AUDIT および OBJMAINT カテゴリーについての成功と失敗を監査し、SECMAINT、CHECKING、および VALIDATE カテゴリーについては失敗だけを監査し、その他のカテゴリーについてはどちらのイベントも監査しない監査ポリシーを作成します。
CREATE AUDIT POLICY DBAUDPRF
CATEGORIES AUDIT STATUS BOTH,
SECMAINT STATUS FAILURE,
OBJMAINT STATUS BOTH,
CHECKING STATUS FAILURE,
VALIDATE STATUS FAILURE
ERROR TYPE NORMAL