Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: reiser en 5 Septiembre 2016, 17:12 pm



Título: Auditoria de base de datos, ¿Triggers o procedimiento almacenado?
Publicado por: reiser en 5 Septiembre 2016, 17:12 pm
Hola a tod@s , tengo una base de datos en la cual tengo una tabla de usuarios (los que pueden acceder a mi sistema), y una tabla de productos. Hay varios usuarios que tienen acceso a la tabla productos, que pueden modificar, agregar o borrar productos.

Lo que quiero es poder llevar un registro de los usuarios que realicen estas acciones, y guardar los registros en otra tabla, auditoria_productos, se que con triggers puedo registrar en la tabla auditoria productos el valor anterior, y el valor nuevo de los productos entre otros valores. Pero mi duda es si puedo registrar el usuario que hace la modificación , vi que con current_user() se puede guardar el usuario de la base de datos, pero me interesa es el usuario que se loguea en el sistema.

No se si es posible con un triggers o si hay que usar un procedimiento almacenado ya que estos si pueden recibir parametros.

Saludos y gracias de antemano


Título: Re: Auditoria de base de datos, ¿Triggers o procedimiento almacenado?
Publicado por: ThinkByYourself en 8 Septiembre 2016, 00:52 am
Hola reiser. ¿ Qué tipo fe bade de datos usas? ¿MySQL, SQL Server,...?


Título: Re: Auditoria de base de datos, ¿Triggers o procedimiento almacenado?
Publicado por: Zeros1001 en 8 Septiembre 2016, 14:10 pm
Desconozco si se puede desde la base de datos.

Pero la solución que le veo a priori es realizarlo desde la aplicación, me explico:

Te logueas en la aplicación y en el método InsertarProducto, tras insertar el producto realizas una inserción en auditoria_productos donde guardas el user, el product ID y la fecha si quieres.

Espero que te sirva de ayuda. Saludos

PD: Además de eso, puedes realizar un log en el servidor, en un .dat o .txt por ejemplo.