2011-02-09 25 views
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| 

なぜ?あなたは何か考えていますか?上記

答えて

5

11gR2のと:

BY SESSIONが効果的に無効になり、すべての監査は、アクセスごとに行われます。以下

11gR1のと:

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

それだけで上記のリンクから、しかしDDL以外のSQL文のために働く:あなたは文のオプションやシステム権限の監査データ定義言語(DDL)ステートメントを指定した場合、データベースは自動的により監査

BY SESSION句を指定するかBY ACCESS句を指定するかにかかわらずアクセスできます。

CREATE SESSIONはDDL文であるため、Oracleはアクセスでこの文を監査します。

+0

ありがとう、非常に良い答え! – kupa