Möglicherweise können Sie die Informationen mithilfe der Funktion undokumentiert :: fn_dblog, die Protokolldatensätze interpretiert, aus dem Protokoll abrufen. Ich bin gerade dabei, eine Disaster Recovery-Klasse zu unterrichten, aber wenn Sie 2-3 Stunden warten können, werde ich veröffentlichen, wie es für Sie geht - sollte auch in der Lage sein, den Benutzernamen zu erhalten, ohne Tools kaufen zu müssen ( Ich habe im Jahr 2000 eine Tonne im Protokoll herumgespielt, als ich eine Reihe des internen Protokollanalysecodes geschrieben habe, den DBCC CHECKDB im Jahr 2000 verwendet hat.
[Bearbeitet, um Anweisungen einzuschließen] Ok - Unterricht beendet und ich habe einen Blog-Beitrag erstellt, um Ihnen zu zeigen, wie Sie das Protokoll in den Jahren 2000, 2005 und 2008 analysieren können, um herauszufinden, wann die Tabelle gelöscht wurde und wer es getan hat. Überprüfen Sie meinen Blog-Beitrag unter Herausfinden, wer eine Tabelle mithilfe des Transaktionsprotokolls gelöscht hat . [/bearbeiten]
Haben Sie noch das Transaktionsprotokoll? In welchem Wiederherstellungsmodell befindet sich die Datenbank? Wenn es EINFACH ist, tun Sie nichts, was einen Kontrollpunkt verursachen würde. Wenn es FULL oder BULK_LOGGED ist, führen Sie keine Protokollsicherung durch. Beides führt dazu, dass das Protokoll abgeschnitten wird und Sie möglicherweise nicht mehr in das Protokoll zurückblicken können, obwohl ich dem Blog-Beitrag ein Trace-Flag hinzugefügt habe, das Ihnen auch dabei helfen kann.
Vielen Dank
PS Eine Möglichkeit, das Löschen von Tabellen im Jahr 2000 zu verhindern, ohne die Sicherheit zu erhöhen, besteht darin, eine einfache schemaboundierte Ansicht darauf zu erstellen. DROP TABLE schlägt fehl, wenn die Ansicht vorhanden ist.