Pregunta

Se me ha pedido que audite cualquier / todos los cambios en una tabla MySQL. ¿Alguien sabe de alguna herramienta para ayudarme a hacer esto o necesito escribir mi propia solución?

Si escribo mi propia audición, mi idea inicial fue crear una tabla separada y crear una serie de cambios en el código PHP. Algo como " fieldname1 - > valor antiguo | fieldname2 - > valor antiguo, ... " ;. Si ve un problema importante con este método, hágamelo saber.

¿Fue útil?

Solución

La única forma segura de capturar todos los cambios en una tabla de base de datos es usar los desencadenantes en el servidor. El riesgo de modificar su propio código para auditar los cambios es que no se capturarán los cambios de otra aplicación / usuario, etc.

Habiendo dicho eso, no estoy seguro de que MySQL 4 tuviera soporte de activación.

Otros consejos

Use un disparador para detectar cambios y escribir valores anteriores / posteriores a una tabla de registro.

Si terminas haciendo rodar manualmente una solución debido a la falta de soporte de gatillo, te recomiendo que no solo descargues los cambios en un blob de cadena. Un día se le pedirá que consulte esos datos y terminará teniendo que hacer un montón de análisis de cadenas para recuperar sus datos. (Hablo por experiencia aquí).

El enfoque más simple es simplemente crear una tabla de auditoría sombra que tenga todas las mismas columnas que la tabla original, más una columna de fecha de cambio y una identificación secuencial. Luego, tiene todo el historial a mano para reconstruir en cualquier formato que necesite, y puede consultarlo a voluntad.

SoftTree DB Audit es compatible con MySQL, podría hacer lo que está buscando:

http://www.softtreetech.com/idbaudit.htm

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top