Auditando una tabla

Buenas y ante todo saludos estimados expertos
Mi consulta es la cómo puedo realizar la auditoría sobre una tabla y/o sobre un usuario en concreto en Oracle7. Tenemos un problema de 'modificación sospechosa' de una talbla y querríamos poder auditarla a fin de averiguar quién o qué esta accediendo a ella y modificándola
Muchas Grais !

1 respuesta

Respuesta
1
Lo más fácil es crear un trigger sobre la tabla (uno por cada operación delete, update, insert) y en el mismo preguntas si el usuario es el que te interesas grabas la información que interesa de antes y después del cambio.
¿No habría otra manera de poderlo hacer? Lo veo un poco costoso, es decir, veo que con ello se puede utilizar muchos recursos del sistema y con ello perjudicar su funcionamiento.
No te va a consumir muchos recursos, y menos porque solo vas a grabar si se trata de un único usuario. Cuando quieres auditar una transacción y estar 100% seguro de lo que hizo el usuario esta es la única manera. Yo hago esto en tablas con más de 100 millones de registros y no tengo problemas de rendimientos.
Hay otra forma, pero se te pueden escapar transacciones y además no puedes ver información que manipulan, sino solo sabes que operación realizó es ejecutar la siguiente consulta:
Solo vas a capturar las operaciones que estén haciendo en el momento en que la ejecutas.
select s.sid,
       t.piece,
       Sql_text,
to_char(logon_time,'dd hh24:mi:ss') conex,
username,
osuser,
module,
program,
sid,
serial#,
piece
from V$SQLTEXT t, V$SESSION s
WHERE ADDRESS= SQL_ADDRESS
  and username = 'ElUsuario'
ORDER BY module, s.sid, t.piece;
Te aconsejo el uso de los triggers, y más si este caso de ser confirmado requiere de acciones legales.
Muchas grais por esta info.
Pero el caso, es que NO sabemos qué usuario ha podido modificar dicha tabla. Nos hemos encontrado una tabla con info 'incorrecta' y se necesitaría saber ¿cuál es el usuario? Que ha modificado esta tabla.
Lo dicho, Muchas Grais por esta información.
Si no conoces el usuario deberás de poner el trigger hasta que lo identifiques, en él puedes validar si la información introducida es incorrecta (si lo puedes realizar con simples condiciones, o sea no utilizando select adicionales) y en ese caso grabar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas