SQL Server 2005 Änderungsüberwachung
-
21-08-2019 - |
Frage
Gibt es eine eingebaute Möglichkeit in SQL Server 2005 Dinge zu prüfen, speziell wie eine gespeicherte Prozedur zu löschen? Gibt es eine History-Tabelle, dass ich abfragen kann? Wir haben ein Geheimnis sproc, die ein paar Mal jetzt verschwunden ist.
Lösung
Sie können bauen diese mit DDL-Trigger:
Andere Tipps
Nur wenn Sie verwenden DDL-Triggern oder Profiler verfolgen Text "% DROP% PROC% procname%"
Beachten Sie, dass in SQL Server 2008 sie jetzt auch AUDIT haben zu ersetzen Profiler Spuren für Auding Aktivitäten. Es ist ähnlich, aber hat seine eigene Konfiguration UI und UI-Ergebnisse anzuzeigen
Sie können Setup eine Profiler-Ablaufverfolgung zur Erfassung des Audit Schema Object Management Ereignis und Filter basierend auf dem Datenbanknamen, die Sie interessieren. Jedes Mal, wenn ein Objekt im Schema erstellt wird, fallen gelassen, bearbeitet es wird ein Ereignis in Profiler Feuer, das der Person enthält, der die Änderung tat und den Namen der gespeicherten Prozedur.
Sie werden diese Profiler Spalten zumindest wollen: Application - Name der App Benutzer ausgeführt wurde, als sie Änderung Database - Databse das Objekt enthält, geändert EventSubClass - Art der Aktion zeigt ändern, zu modifizieren, Tropfen, erstellen usw. Loginname - Benutzerwechsel machen ObjektName - Objekt betroffen
[spät ein, sondern fügt Einzelheiten darüber, wie zu sehen, wer die Änderung vorgenommen hat, noch bevor Revisionssystem wird in Position gebracht]
Andere haben bereits verschiedene Möglichkeiten abgedeckt Sie können Audit-Daten zu überwachen, um zukünftige Änderungen starten, aber wenn Sie ursprünglich kein Revisionssystem in verfügen, dann ist es sehr schwierig, herauszufinden, wer wann was getan hat historisch.
Nur Option ist zu versuchen, Transaktionsprotokoll zu lesen Datenbank-Modus wird in vollständiger Genesung vorausgesetzt. Das Problem ist, dass diese nicht standardmäßig unterstützt wird. Die Optionen sind:
- Third-Party-Tools wie ApexSQL Log oder Quest Toad
- Undocumented Funktionen wie DBCC LOG oder fn_dblog
Sehen Sie diese Themen, um weitere Informationen:
Wie Transaktionsprotokoll in SQL Server 2008 sehen
SQL Server Transaktionsprotokoll Explorer / Analyzer
Wie Abfrage Geschichte in SQL Server Management sehen Studio
Ich bin damit einverstanden. Es kann der SQL Server Profiler mit Filter sein. Die DDL-Triggern in SQL Server vorhanden sind. Man könnte so etwas wie dies erstellen:
CREATE TRIGGER ddl_drop_procedure
ON DATABASE
FOR DROP_PROCEDURE
AS
RAISERROR ('You deleted a stored procedure',10, 1)
GO
Die andere Option ist Tools von Drittanbietern wie Auto Audit von Codeplex zu verwenden, oder ApexSQL Trigger.