Welche Art von Audit-Informationen wird von SQL Server gespeichert, wenn eine CREATE TABLE oder Operation ALTEN durchgeführt wird?

StackOverflow https://stackoverflow.com/questions/984558

  •  13-09-2019
  •  | 
  •  

Frage

Die Inspiration für diese Frage ist eine gespeicherte Prozedur auf mir bricht, weil es eine andere gespeicherte Prozedur aufgerufen, die Daten in einer Tabelle, dessen Schema war völlig veränderte eingefügt.

Die Frage ist, Sie eine Tabelle in einer SQL Server-Datenbank, und Sie wissen nicht, wie es dort ankamen. Sie haben keine DDL anstelle Trigger für benutzerdefinierte Audit-Informationen, und es gibt keinen Datensatz in Ihrer Quellcodeverwaltungsrepository der Tabellen DDL. Mit nur SQL Server, welche forensischen Daten können Sie über die Tabelle erhalten.

Ich selbst, und wer über diese Frage in einer ähnlichen Situation stolpert, geht nicht durch Vorschläge geholfen werden in Bezug auf die Versionskontrolle und DDL-Trigger. Das sind großer Sprung nach vorn Lösungen, und es gibt jede Menge Informationen zu diesem Blog über die Themen, wenn Unternehmenspolitik ermöglicht es uns, diese Lösungen zu implementieren. Was ich, und die Menschen in meiner Situation wirklich braucht, ist in der Lage sein, wie viele Fragmente von Daten wie möglich von SQL Server zu sammeln, mit zu verbinden, was auch immer anderen Daten, die wir mit oben kommen können.

War es hilfreich?

Lösung

Leider haben Sie keine Möglichkeit zu rekonstruieren, was passiert ist, mit der Ausnahme:

  • , wenn die DBAs haben Spuren laufen und die Geschichte. SQL Server 2005 verfügt über eine Standard-Trace und es gibt die „Blackbox“ trace, aber diese werden verwendet, um herauszufinden, was richtig geschah vor einem Absturz

  • Wenn Sie vollständige Wiederherstellungsmodell haben, dann können Sie ein Protokoll-Viewer-Tool versuchen ( free Red Gate ein )

  • in Abhängigkeit von Tätigkeit und Ihrem Sicherheitsmodell, können Sie auch das Windows-Sicherheitsprotokoll überprüfen, um zu sehen, wer mit DDL-Berechtigungen angemeldet

  • die SQL-Ereignisprotokolle können auch Informationen. Zum Beispiel, wenn Sie den Trace-Flag aktiviert haben, die „Erlaubnis“ Fehler meldet, dann können Sie sehen, wann es angefangen hat. Oder die Person, die die Änderung vorgenommen hat können weitere Ausnahmen generiert haben, die protokolliert werden

  • Sie diejenigen mit Rechten fragen können. Es könnte ein echter Fehler sein (zB dachte sie in dev war)

Andere Tipps

Die folgende Abfrage hat mich das Erstellen und das letzte Mal geändert werden.

SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tbTableInQuestion]') AND type in (N'U')

Es soll möglich sein, um die Erstellung der Tabelle in dem finden . Transaktionsprotokoll ich habe nie eine der Betrachter Tool hier, und ich konnte nicht sagen, wie in der Zeit für diese zurück zur Suche, aber alles geschieht im Rahmen einer Transaktion, so ist es Gotta angemeldet werden - auch die Systemtabellen ...

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