NOAUDIT (従来型監査)

この項では、従来型監査用のNOAUDIT文について説明します。これは、Oracle Database 12cより前のリリースで使用されているものと同じ監査機能です。

Oracle Database 12cから、高度な監査機能を完備した統合監査が導入されました。下位互換性を確保するために、従来型監査も引き続きサポートされています。ただし、既存の監査設定から新しい統合監査ポリシー構文への移行を計画することをお薦めします。新しい監査要件については、新しい統合監査を使用してください。従来型監査は、将来のメジャー・リリースでサポート対象外になる可能性があります。

関連項目:

統合監査用のNOAUDIT文については、「NOAUDIT (統合監査)」を参照してください。

目的

NOAUDIT文を使用すると、AUDIT文によって有効になった監査操作を停止できます。

NOAUDIT文は先に発行したAUDIT文と同じ構文である必要があります。また、NOAUDIT文は、その特定のAUDIT文のみを無効にします。たとえば、1番目のAUDIT文Aは特定のユーザーに対する監査を有効にするものとします。2番目の文Bが、すべてのユーザーに対して監査を有効にします。すべてのユーザーに対して監査を無効にするNOAUDIT文Cは、文Bを無効にします。ただし、文Aは無効にされず、文Aが指定したユーザーの監査は継続されます。

関連項目:

AUDIT (従来型監査)

前提条件

SQL文の監査を停止するには、AUDIT SYSTEMシステム権限が必要です。

スキーマ・オブジェクトの監査を停止するには、監査を停止するオブジェクトの所有者である必要があります。そうでない場合は、AUDIT ANYシステム権限が必要です。また、監査の対象として選択するオブジェクトがディレクトリの場合、自分が作成したディレクトリであっても、AUDIT ANYシステム権限が必要です。

CONTAINER句を指定する場合は、マルチテナント・コンテナ・データベース(CDB)に接続している必要があります。CONTAINER = ALLを指定する場合は、現在のコンテナがルートである必要があります。また、共通に付与されているAUDIT SYSTEM権限(SQL文の発行の監査を停止する場合)または共通に付与されているAUDIT ANY権限(スキーマ・オブジェクトに対する操作の監査を停止する場合)が必要です。CONTAINER = CURRENTを指定する場合は、現在のコンテナがプラガブル・データベース(PDB)である必要があります。また、ローカルに付与されているAUDIT SYSTEM権限(SQL文の発行の監査を停止する場合)またはローカルに付与されているAUDIT ANY権限(スキーマ・オブジェクトに対する操作の監査を停止する場合)が必要です。

構文

audit_operation_clause::=

auditing_by_clause::=

audit_schema_object_clause::=

auditing_on_clause::=

セマンティクス

audit_operation_clause

audit_operation_clauseを使用すると、特定のSQL文の監査を停止できます。

statement_option

sql_statement_shortcutには、監査を停止するSQL文のショートカットを指定します。SQL文のショートカットおよびショートカットによって監査されるSQL文の詳細は、表12-1および表12-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句で指定したオブジェクトへの監査を停止する操作の種類を指定します。これらのオプションのリストは、表12-3を参照してください。

ALL

ALLをショートカットに指定することは、オブジェクト・タイプに適用できるSQL操作をすべて指定することと同じです。

auditing_on_clause

auditing_on_clauseを使用すると、監査を停止する特定のスキーマ・オブジェクトを指定できます。

  • オブジェクトには、表、ビュー、順序、ストアド・プロシージャ、ファンクション、パッケージ、マテリアライズド・ビューまたはライブラリのオブジェクト名を指定します。objectschemaで修飾しなかった場合、そのオブジェクトは自分のスキーマ内にあるとみなされます。特定のスキーマ・オブジェクトの監査については、 「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; 

特定のユーザーが所有するオブジェクトに対する更新または問合せの監査の停止: 例

ユーザーhroeによって発行された、表に対する問合せまたは更新を行う任意の文の監査を選択していた場合は、次の文を発行して、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エラーが発生した問合せの監査は継続されます。