jueves, mayo 22, 2014

oracle audit by session no funciona



Cuando se establecen auditorías ORACLE con el comando audit hay dos variantes que hay que valorar: BY SESSION o BY ACCESS.

Inicialmente la idea era que BY ACCESS crea un registro de auditoría por cada registro al que se accede, y BY SESSION crea un registro de auditoría por cada operación realizada en la sesión abierta.

Por lo tanto, en una select full a una tabla, BY ACCESS crea un registro de auditoría por cada registro de la tabla, y en cambio BY SESSION registra una select sobre la tabla.

Ahora vienen las malas noticias: en Oracle11g, tanto BY ACCESS como BY SESSION te generará el mismo número de registro de auditorías, aunque eso sí, BY ACCESS tiene información más detallada en cada registro.

Fuente: http://docs.oracle.com/cd/B28359_01/network.111/b28531/whatsnew.htm#DBSEG000

The BY SESSION clause of the AUDIT statement now writes one audit record for every audited event. In previous releases, BY SESSION wrote one audit record for all SQL statements or operations of the same type that were executed on the same schema objects in the same user session. Now, both BY SESSION and BY ACCESS write one audit record for each audit operation. In addition, there are separate audit records for LOGON and LOGOFF events. If you omit the BY ACCESS clause, then BY SESSION is used as the default.