zusammenfassen Vorschläge zum Implementieren von Audit-Tabellen in SQL Server?




sql summe mehrere zeilen (5)

Wir verwenden dafür zwei Tischdesigns.

Eine Tabelle enthält Daten über die Transaktion (Datenbank, Tabellenname, Schema, Spalte, Anwendung, die die Transaktion ausgelöst hat, Hostname für die Anmeldung, die die Transaktion gestartet hat, Datum, Anzahl der betroffenen Zeilen und weitere Paare).

Die zweite Tabelle wird nur zum Speichern von Datenänderungen verwendet, damit wir Änderungen bei Bedarf rückgängig machen und alte / neue Werte melden können.

Eine andere Option ist die Verwendung eines Drittanbieter-Tools wie ApexSQL Audit oder Change Data Capture in SQL Server.

Eine einfache Methode, die ich in der Vergangenheit verwendet habe, besteht im Wesentlichen darin, nur eine zweite Tabelle zu erstellen, deren Struktur diejenige widerspiegelt, die ich überwachen möchte, und dann einen Aktualisierungs- / Lösch-Trigger für die Haupttabelle zu erstellen. Bevor ein Datensatz aktualisiert / gelöscht wird, wird der aktuelle Status über den Trigger in der Audit-Tabelle gespeichert.

Die Daten in der Audit-Tabelle sind zwar effektiv, aber nicht die nützlichsten oder einfachsten Berichte. Ich frage mich, ob jemand eine bessere Methode für die Prüfung von Datenänderungen hat?

Es sollte nicht zu viele Aktualisierungen dieser Datensätze geben, aber es handelt sich um sehr sensible Informationen. Daher ist es für den Kunden wichtig, dass alle Änderungen überprüft und problemlos gemeldet werden.


Ich benutze den von Greg beschriebenen Ansatz in seiner Antwort und fülle die Audit-Tabelle mit einer gespeicherten Prozedur auf, die von den Table-Triggern aufgerufen wird.


Gibt es eingebaute Audit-Pakete? Oracle hat ein nettes Paket, das sogar Audit-Änderungen an einen separaten Server außerhalb des Zugangs eines Bösewichts, der die SQL modifiziert, sendet.

Ihr Beispiel ist fantastisch ... es zeigt, wie man auf jeden aufmerksam macht, der die Audit-Tabellen ändert.


OmniAudit könnte eine gute Lösung für Sie sein. Ich habe es noch nie benutzt, weil ich sehr gerne meine eigenen Audit-Routinen schreibe, aber es hört sich gut an.






audit