Denken Sie daran, dass das Abschneiden ein effizient protokollierter Vorgang ist .
Da Sie im einfachen Wiederherstellungsmodus ausgeführt werden und Ihr T-Protokoll nicht abgeschnitten ist, können Sie es mit undokumentiert abrufen fn_dblog
:
SELECT [Current LSN]
,[Operation]
,[Begin Time]
,[Transaction ID]
,[Transaction Name]
,[Transaction SID]
,SUSER_SNAME([Transaction SID]) as UserWhoIssuedTruncate
FROM fn_dblog(NULL, NULL)
WHERE Operation = 'LOP_BEGIN_XACT' and
[Transaction ID] IN (
SELECT [Transaction ID]
FROM fn_dblog(NULL, NULL)
WHERE [Transaction Name] = 'TRUNCATE TABLE'
)
GO
Klicken Sie hier zum Vergrößern
Alternativ können Sie eine serverseitige Ablaufverfolgung ausführen oder SQL Audit aktivieren.
Geben Sie Ihren Benutzern immer Mindestberechtigungen (Prinzip der geringsten Berechtigungen).
Ist es möglich, wenn ich es auf FULL ändere?
Ja, das ist es (und das Wiederherstellungsmodell sollte von Ihrem Unternehmen definiert werden - möchten Sie eine Wiederherstellung zu einem bestimmten Zeitpunkt durchführen lassen? Wie viele Daten kann sich Ihr Unternehmen leisten, um sie zu verlieren? Usw.) Sie müssen mit der Pflege Ihres T-Protokolls beginnen, indem Sie ein reguläres Protokoll ausführen Backups. Dadurch bleibt Ihr T-Log auf einer vernünftigen Größe.
Die bearbeitete
Abfrage verwendet "IN" anstelle von "=", da mehrere Ergebnisse in der Unterabfrage möglich sind.