Ayuda sobre el control de tablas mediante auditoría utilizando Power Builder

Espero estés bien,
Aquí va mi inconveniente.
Tengo un sistema que carece de una auditoria que me diga quien, cuando y que cambio hizo cada persona. Como me recomiendas auditar las tablas que necesito auditar, soy nuevo en programación con Powerbuilder, si tienes algún ejemplo te lo voy agradecer.
Gracias de antemano,
Rafael
Respuesta
1
Para auditar QUE y QUIEN tenés que usar una tabla de auditoría para cada tabla que quieras auditar.
La tabla de auditoría es igual a la común pero agrega los campos usuario, fechahora y operación.
Después por medio de triggers guardas en la tabla.
El mecanismo es así:
Antes de que el usr modifique algo (esto lo detecta el trigger que se ejecuta antes del update) guardas una copia de la fila tal cual estaba antes de modificar (más usr, fh, y operación = modifica). Después de la modificación guardas una copia del registro tal cual quedó.
para insert y delete solo generas un registro de auditoría en la tabla.
Como podes ver esta tabla de auditoría crece mucho y rápido, así que elegí bien que necesitas auditar. Además el proceso de registrar la auditoría toma tiempo.
Las tablas de auditoría deben ser depuradas periódicamente (move los registros a otra bd o elimínalos dejando un back en cinta o cd por si surgen problemas más adelante).
Disculpa apreciado experto no había cerrado la pregunta, lo haré, pero antes necesito que me aclares una duda. Ya hice el trigger que crea la copia del record, y se graba en dicha tabla, pero no se como tomar el nombre de la pc, el usuario de la red, etc, ¿cómo puedo hacer esto a nivel de código o en la base de datos?
Rafael
A nivel de la BD podes sacar el nombre del usuario (si es que se conectan con un usuario de la bd).
Si se conectan con un usuario genérico y la seguridad la manejas a nivel BD entonces no tenés forma de sacarlo.
Lo que podes hacer es mantener en una tabla los datos de los usuarios conectados y la pc desde la que se conectaron. Al momento de hacer el trigger sacá de esta tabla los datos que necesitá.
El tema es que esto va a consumir tiempo de respuesta de tu sistema.
Evaluá realmente que datos necesitás mantener. Con el usuario y fechahora generalmente alcanza.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas