Frage

Ich habe jede / alle Änderungen in einer MySQL-Tabelle überprüfen gefragt. Kennt jemand von irgendwelchen Tools gibt mir dies zu helfen, tun oder muss ich meine eigene Lösung schreiben?

Wenn ich meine eigene audting schreiben, dachte mein anfängliches es eine separate Tabelle zu machen und eine Reihe von Änderungen in dem PHP-Code zu erstellen. Etwas wie "fieldname1 -> OldValue | FieldName2 -> OldValue, ...". Wenn Sie ein großes Problem mit dieser Methode sehen, lassen Sie es mich wissen.

War es hilfreich?

Lösung

Der einzige todsichere Weg, um alle Änderungen an einer DB-Tabelle zu erfassen ist Trigger auf dem Server zu verwenden. Das Risiko, Ihren eigenen Code von modifing die Änderungen zu prüfen ist, dass Änderungen von einer anderen Anwendung / der Benutzer usw. werden nicht erfasst werden.

Having said that, ich bin nicht sicher, dass MySQL 4 Trigger-Unterstützung hatte.

Andere Tipps

Verwenden Sie einen auslösen Änderungen zu erkennen und zu schreiben vorher / Nachher-Werte in einer Log-Tabelle.

Wenn Sie aufzuwickeln Handwalzen eine Lösung aufgrund mangelnder Trigger Unterstützung, empfehle ich dringend, dass Sie nicht nur die Änderungen in einem String-Blob-Dump. Eines Tages werden Sie gefragt, diese Daten abzufragen, und Sie werden mit aufzuwickeln eine Reihe von String zu tun Parsen Ihre Daten zurückzubekommen aus. (Ich spreche aus Erfahrung hier.)

Der einfachste Ansatz ist nur ein Schatten Audit-Tabelle zu erstellen, die alle die gleichen Spalten wie die ursprüngliche Tabelle hat, sowie eine Änderung Datumsspalte und eine sequenzielle ID. Dann haben Sie die ganze Geschichte in der Hand in zu rekonstruieren, was auch immer Format, das Sie brauchen, und Sie können es nach Belieben abfragen.

SoftTree DB Audit hat MySQL-Unterstützung, könnte tun, was Sie nach:

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top