5

次の方法で作成セッションの監査を有効にした場合:

audit create session by session;

次に、次のクエリを実行します。

select * from dba_priv_audit_opts;

結果は次のとおりです。

USERNAME | PROXY_NAME | AUDIT_OPTION   | SUCCESS   | FAILURE  |
...............................................................
 -       | -          | CREATE SESSION | BY ACCESS | BY ACCESS|

ただし、次の方法で作成セッションの監査を有効にすると、次のようになります。

 audit create session by access;

次に、次のクエリを実行します。

select * from dba_priv_audit_opts;

結果は同じです:

USERNAME | PROXY_NAME | AUDIT_OPTION   | SUCCESS   | FAILURE  |
...............................................................
 -       | -          | CREATE SESSION | BY ACCESS | BY ACCESS|

なんで?何か考えはありますか?

4

1 に答える 1

6

11gR2以降:

BY SESSIONは事実上無効になっており、すべての監査はアクセスごとに実行されます。

11gR1以下:

との違いはBY SESSIONBY ACCESS Oracleを指定BY SESSIONすると、監査されたセッションとアクションが一致したときに、複数の監査エントリを1つのレコードにマージしようとすることです。

ただし、DDL以外のSQLステートメントでのみ機能します。上記のリンクから:

データ定義言語(DDL)ステートメントを監査するステートメントオプションまたはシステム権限を指定すると、BYSESSION句またはBYACCESS句のどちらを指定したかに関係なく、データベースはアクセスによって自動的に監査します。

はDDLステートメントであるためCREATE SESSION、Oracleはアクセスによってこのステートメントを監査します。

于 2011-02-09T09:21:44.543 に答える