Finden Sie heraus, wer eine gespeicherte Prozedur in SQL Server geändert hat?


10

Es sieht so aus, als hätte sich jemand in unserer SQL Server-Datenbank angemeldet und eine gespeicherte Prozedur geändert. Gibt es eine Möglichkeit, die Anmeldeinformationen der Person herauszufinden, die dies getan hat?

Antworten:


17

Sie können sich die Standardablaufverfolgung ansehen und dies leicht herausfinden. Probieren Sie die Beispiele von Jonathan Kehayias.

http://sqlblog.com/blogs/jonathan_kehayias/archive/2009/05/27/pass-dba-sig-default-trace-presentation-files.aspx

Dies soll als Beispiel gezeigt werden und Sie müssen sich den Ereignistyp ALTER OBJECT ansehen.

http://sqlblog.com/blogs/jonathan_kehayias/archive/2009/09/29/what-session-created-that-object-in-tempdb.aspx

BEARBEITEN:

Der Code wurde freundlicherweise von Jonathan Kehayias zur Verfügung gestellt.

DECLARE @filename VARCHAR(255) 
SELECT @FileName = SUBSTRING(path, 0, LEN(path)-CHARINDEX('\', REVERSE(path))+1) + '\Log.trc'  
FROM sys.traces   
WHERE is_default = 1;  

SELECT gt.HostName, 
       gt.ApplicationName, 
       gt.NTUserName, 
       gt.NTDomainName, 
       gt.LoginName, 
       gt.SPID, 
       gt.EventClass, 
       te.Name AS EventName,
       gt.EventSubClass,      
       gt.TEXTData, 
       gt.StartTime, 
       gt.EndTime, 
       gt.ObjectName, 
       gt.DatabaseName, 
       gt.FileName, 
       gt.IsSystem
FROM [fn_trace_gettable](@filename, DEFAULT) gt 
JOIN sys.trace_events te ON gt.EventClass = te.trace_event_id 
WHERE EventClass in (164) --AND gt.EventSubClass = 2
ORDER BY StartTime DESC; 

Gespeicherte Prozeduren werden in den Ergebnissen nicht angezeigt. Irgendwelche Ideen warum?
Behrang Saeedzadeh

Wenn SP geändert wird, werden sie angezeigt. Wenn Sie möchten, erstellen Sie einen Dummy-SP und ändern Sie ihn. Überprüfen Sie, ob er im obigen Bericht angezeigt wird.
Sankar Reddy

Vergiss meinen früheren Kommentar. Herausgefunden. Vielen Dank.
Behrang Saeedzadeh

Ich bin froh, dass du es herausgefunden hast :-)
Sankar Reddy

Beachten Sie, dass dieses Ablaufverfolgungssystem gemäß MSDN-Dokumenten veraltet ist. Microsoft empfiehlt stattdessen die Verwendung des Paradigmas "Erweiterte Ereignisse": technet.microsoft.com/en-us/library/bb630354(v=sql.105).aspx
KeithS
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.