Descobrindo quem modificou um Procedimento Armazenado no SQL Server?

10

Parece que alguém efetuou login e modificou um Procedimento armazenado em nosso banco de dados do SQL Server. Existe uma maneira de descobrir as credenciais da pessoa que fez isso?

Behrang Saeedzadeh
fonte

Respostas:

17

Você pode olhar para o rastreamento padrão e descobrir isso facilmente. Experimente os exemplos de Jonathan Kehayias.

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

Isso é mostrado como exemplo e você precisa observar o tipo de evento ALTER OBJECT.

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

EDITAR:

O código é cortesia de Jonathan Kehayias.

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; 
Sankar Reddy
fonte
Os procedimentos armazenados não estão aparecendo nos resultados. Alguma idéia do porquê?
Behrang Saeedzadeh
Se o SP for modificado, eles aparecerão. Se desejar, tente criar um SP fictício e altere-o e veja se ele aparece no relatório acima.
precisa saber é o seguinte
Esqueça o meu comentário anterior. Descobri isso. Obrigado.
Behrang Saeedzadeh
Fico feliz, você conseguiu descobrir :-)
Sankar Reddy
Esteja ciente de que este sistema de rastreamento está obsoleto de acordo com os documentos do MSDN. A Microsoft recomenda o uso do paradigma "Eventos estendidos": technet.microsoft.com/en-us/library/bb630354(v=sql.105).aspx
KeithS