2011-02-09 5 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