Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/11/2011, 20:48
Avatar de matanga
matanga
 
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años
Puntos: 85
Respuesta: Saber si la tabla fue leida a traves de un select

Puedes ver las operaciones que se realizan sobre los objetos activando la auditoria en la base de datos. El tema es demasiado extenso y con muchas opciones de configuración como para comentar en un post, sería mejor que leas la documentación en http://docs.oracle.com/cd/B19306_01/...6/cfgaudit.htm, también tienes un buen resumen en http://www.oracle-base.com/articles/...ting_10gR2.php.

De todos modos, para que tengas una idea, los siguientes pasos son un ejemplo simple de auditoria.

1. Activar la auditoria configurando el parámetro audit_trail. Aquí necesitas, privilegios de DBA para ejecutar el comando alter system, y reiniciar la base de datos para que haga efecto el cambio.

Código:
alter system set audit_trail=db scope=spfile;
2. Definir las reglas de auditoria. Aquí existen muchas opciones, algunos ejemplos son:

Código:
--auditar todas las operaciones de un_usuario en todos los objetos
audit all by un_usuario by access;

--auditar algunas operaciones de un_usuario en todos los objetos
audit select table, update table, insert table, delete table
 by un_usuario by access;

--auditar algunas operaciones sobre una tabla en todos los usuarios
audit delete, insert, update on una_tabla by access;
3. Consultar los registros de auditoria. Después de definir las reglas, puedes ver la información resultante en la vista dba_audit_trail.

Código:
select username,
       extended_timestamp,
       owner,
       obj_name,
       action_name
from dba_audit_trail
Saludos