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.