![]() |
Procedimiento Almacenado para Auditoria
Que tal? estoy intentando hacer una auditoria para mi aplicacion en delphi, usando como motor de db a MYSQL.
Resulta que estoy buscando la forma de programar un script de forma tal que capture cualquier evento en mi base de dato (INSERT, UPDATE, DELETE) y poder recuperar los datos a operar en una tabla de auditoria. Hasta el momento llegue a la conclusion que no me sirve utilizar trigger, ya que necesito capturar el ID del usuario logueado el cual realiza la accion (INSERT, UPDATE, DELETE), y ese ID lo guardo en una variable publica en mi MAIN de la aplicacion en delphi, y hasta donde yo se, los triggers solo procesan datos con los que trabaja la tabla. Entonces, ya que uso SP para los inserts, probe realizar el siguiente script, y necesito la critica de los que verdaderamente saben (ustedes v:-)v ) y que me digan que opinan al respecto, si conviene trabajar asi, si es factible en cuanto a velocidad de proceso, etc. Algo para tener en cuenta, mi aplicacion es para una oficina, en la cual son no mas de 12 terminales, 5 para consultas y no mas de 5 para ABM de datos, y 2 que administren. A continuacion les dejo mi SP
La estructura de las tablas que uso son las siguientes: acta *actanum *actaserie actafecha actahora actanumcalle offdni empresa_id vehicledom lugar_id causanum causafecha resolnum resolfecha pago_id fichanum causa *causanum *causafecha causaobs actabreach *actabreach_id (AI) actanum actaserie breach_id Agradeceria mucho su ayuda, y si no estoy en la seccion correspondiente, que me informen asi lo posteo donde corresponde. Saludos y Gracias |
El uso de disparadores no estaría mal, estoy seguro que MySQL ha de manejar alguna función o variable para determinar que usuario está ejecutando la operación (en Firebird es Current_User). ¿No será que utilizas el mismo usuario de MySQL para todos los que trabajan con la aplicación? :confused:
Una alternativa del lado de Delphi es redefinir unos cuantos métodos de los componentes de acceso a datos, para "interceptar" todos los Inserts, Updates y Delete). ¿Qué tipos de objetos usas para llevar a cabo estas operaciones? Saludos. |
Gracias por responder. Utilizo componentes ADO para la conexion los SP. Como puedo definir datos desde delphi para interceptar los INSERT UPDATE Y DELETES?. Saludos
|
Cita:
|
Cita:
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx Cita:
Saludos. |
Cita:
Muchas gracias por tu respuesta. La verdad nunca habia trabajado de esa manera. Tengo varios proyectos en PHP por ej. donde la conexion a la db es una sola, con un solo usuario y pass, y a partir de ese usuario se gestionan todas las acciones de los USUARIOS que se loguean en mi pagina. Voy a intentar crear un proyecto de prueba de la forma que me planteas y probar. Saludos y gracias ! |
Comprendo elrodrix. En Delphi es un poco diferente, pero con la ventaja de que todo es posible.
No fue nada, ya nos dirás lo que se te vaya presentando. Saludos. :) |
La franja horaria es GMT +2. Ahora son las 20:43:57. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi