この項では、従来型
監査用のNOAUDIT文について説明します。これは、Oracle Database 12cより前のリリースで使用されているものと同じ監査機能です。
Oracle Database 12cから、高度な監査機能を完備した統合監査が導入されました。下位互換性を確保するために、従来型監査も引き続きサポートされています。ただし、既存の監査設定から新しい統合監査ポリシー構文への移行を計画することをお薦めします。新しい監査要件については、新しい統合監査を使用してください。従来型監査は、将来のメジャー・リリースでサポート対象外になる可能性があります。
用途
NOAUDIT
文を使用すると、AUDIT
文によって有効になった監査操作を停止できます。
NOAUDIT
文は先に発行したAUDIT
文と同じ構文である必要があります。また、NOAUDIT文は、その特定のAUDIT文のみを無効にします。たとえば、1番目のAUDIT
文Aは特定のユーザーに対する監査を有効にするものとします。2番目の文Bが、すべてのユーザーに対して監査を有効にします。すべてのユーザーに対して監査を無効にするNOAUDIT
文Cは、文Bを無効にします。ただし、文Aは無効にされず、文Aが指定したユーザーの監査は継続されます。
前提条件
SQL文の監査を停止するには、AUDIT
SYSTEM
システム権限が必要です。
スキーマ・オブジェクトの監査を停止するには、監査を停止するオブジェクトの所有者である必要があります。そうでない場合は、AUDIT
ANY
システム権限が必要です。また、監査の対象として選択するオブジェクトがディレクトリの場合、自分が作成したディレクトリであっても、AUDIT
ANY
システム権限が必要です。
CONTAINER
句を指定する場合は、マルチテナント・コンテナ・データベース(CDB)に接続している必要があります。CONTAINER
=
ALL
を指定する場合は、現在のコンテナがルートである必要があります。また、共通に付与されているAUDIT
SYSTEM
権限(SQL文の発行の監査を停止する場合)または共通に付与されているAUDIT
ANY
権限(スキーマ・オブジェクトに対する操作の監査を停止する場合)が必要です。CONTAINER
=
CURRENT
を指定する場合は、現在のコンテナがプラガブル・データベース(PDB)である必要があります。また、ローカルに付与されているAUDIT
SYSTEM
権限(SQL文の発行の監査を停止する場合)またはローカルに付与されているAUDIT
ANY
権限(スキーマ・オブジェクトに対する操作の監査を停止する場合)が必要です。
構文
noaudit::=
(audit_operation_clause::=、auditing_by_clause::=、audit_schema_object_clause::=)
セマンティクス
audit_operation_clause
audit_operation_clause
を使用すると、特定のSQL文の監査を停止できます。
statement_option sql_statement_shortcut
では、監査を停止するSQL文のショートカットを指定します。SQL文のショートカットおよびショートカットによって監査されるSQL文の詳細は、表13-1および表13-2を参照してください。
ALL ALL
を指定すると、AUDIT
ALL
...
文の発行によって現在監査されているすべての文オプションの監査を停止できます。この句を使用して、発行済のAUDIT
ALL
STATEMENTS
...
文を元に戻すことはできません。
ALL STATEMENTS ALL
STATEMENTS
を指定すると、発行済のAUDIT
ALL
STATEMENTS
...
文を元に戻すことができます。この句を使用して、発行済のAUDIT
ALL
...
文を元に戻すことはできません。
system_privilege system_privilege
では、監査を停止するシステム権限を指定します。システム権限および各システム権限によって許可される文については、表18-1を参照してください。
ALL PRIVILEGES ALL
PRIVILEGES
を指定すると、現在監査されているすべてのシステム権限の監査を停止できます。
auditing_by_clause
指定したユーザーのそれ以降のセッションで発行されるSQL文の監査のみを停止する場合は、auditing_by_clause
を使用します。この句を指定しない場合、すべてのユーザー文の監査が停止されます。ただし、「WHENEVER
SUCCESSFUL
」で説明する状況は除きます。
audit_schema_object_clause
audit_schema_object_clause
を使用すると、特定のデータベース・オブジェクトの監査を停止できます。
sql_operation sql_operation
の場合、ON
句で指定したオブジェクトへの監査を停止する操作の種類を指定します。これらのオプションのリストは、表13-3を参照してください。
ALL ALL
をショートカットに指定することは、オブジェクト・タイプに適用できるSQL操作をすべて指定することと同じです。
auditing_on_clause auditing_on_clause
を使用すると、監査を停止する特定のスキーマ・オブジェクトを指定できます。
オブジェクトには、表、ビュー、順序、ストアド・プロシージャ、ファンクション、パッケージ、マテリアライズド・ビューまたはライブラリのオブジェクト名を指定します。object
をschema
で修飾しなかった場合、そのオブジェクトは自分のスキーマ内にあるとみなされます。特定のスキーマ・オブジェクトの監査については、 「AUDIT (従来型監査)」を参照してください。
DIRECTORY
では、監査を停止するディレクトリ名を指定できます。
SQL
TRANSLATION
PROFILE
句では、監査を停止するSQL翻訳プロファイルを指定できます。
DEFAULT
を指定して、オブジェクトを作成した後に、特定のオブジェクト・オプションをデフォルト・オブジェクト・オプションとして削除します。
NETWORK この句を使用すると、データベース・リンクの使用とログインの監査を停止できます。
DIRECT_PATH LOAD この句を使用すると、SQL*Loaderのダイレクト・パス・ロードの監査を停止できます。
WHENEVER [NOT] SUCCESSFUL
WHENEVER
SUCCESSFUL
を指定すると、正常に実行されたスキーマ・オブジェクトに対するSQL文および操作の監査のみを停止できます。
WHENEVER
NOT
SUCCESSFUL
を指定すると、Oracle DatabaseエラーとなったSQL文および操作の監査のみが停止されます。
この句を指定しない場合、正常に実行されたかどうかにかかわらず、すべての文および操作の監査が停止されます。
CONTAINER句
CONTAINER
句を使用すると、NOAUDIT
コマンドの有効範囲を指定できます。
CONTAINER
=
CURRENT
を指定すると、接続先のPDBで監査を停止できます。auditing_by_clause
を指定する場合、user
は、共通ユーザーまたは現在のPDBのローカル・ユーザーにする必要があります。auditing_on_clause
を指定する場合、オブジェクトは現在のPDBのローカル・オブジェクトにする必要があります。
CONTAINER
=
ALL
を指定すると、CDB全体で監査を停止できます。auditing_by_clause
を指定する場合、user
は、共通ユーザーにする必要があります。auditing_by_clause
を指定しないと、各PDBのすべての共通ユーザーとすべてのローカル・ユーザーに対する監査が停止されます。auditing_on_clause
を指定する場合、オブジェクトは共通オブジェクトにする必要があります。
この句を省略すると、CONTAINER
=
CURRENT
がデフォルトになります。
例
ロールに関連するSQL文の監査の停止例: 次の文は、ロールを作成または削除するすべてのSQL文の監査を停止します。
NOAUDIT ROLE;
特定ユーザーが所有するオブジェクトに対する更新または問合せの監視の停止例: 次の文は、ユーザーhr
およびoe
によって発行された、表の問合せまたは更新を実行する文を監査している場合、hr
の問合せの監査のみを停止します。
NOAUDIT SELECT TABLE BY hr;
この結果、ユーザーhr
の問合せの監査のみが停止されます。oe
の問合せと更新、およびhr
の更新の監査は継続されます。
特定のオブジェクト権限で許可された文の監査の停止例: 次の文は、DELETE
ANY
TABLE
システム権限に許可されたすべての文の監査を停止します。
NOAUDIT DELETE ANY TABLE;
特定のオブジェクトに対する問合せの監査の停止例: 次の文は、スキーマhr
内のemployees
表に問い合せるすべてのSQL文の監査を選択していた場合に、この監査を停止します。
NOAUDIT SELECT ON hr.employees;
正常に実行される問合せの監査の停止例: 次の文は、正常に終了した問合せの監査を停止します。
NOAUDIT SELECT ON hr.employees WHENEVER SUCCESSFUL;
この文は、正常に終了した問合せの監査のみ停止します。Oracle Databaseエラーが発生した問合せの監査は継続されます。