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.