¿Descubrir quién ha modificado un procedimiento almacenado en SQL Server?

10

Parece que alguien inició sesión y modificó un Procedimiento almacenado en nuestra base de datos de SQL Server. ¿Hay alguna manera de averiguar las credenciales de la persona que ha hecho eso?

Behrang Saeedzadeh
fuente

Respuestas:

17

Puede ver el rastreo predeterminado y resolverlo fácilmente. Pruebe los ejemplos de Jonathan Kehayias.

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

Esto se muestra como un ejemplo y debe mirar el tipo de evento ALTER OBJECT.

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

EDITAR:

El código es cortesía 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
fuente
Los procedimientos almacenados no se muestran en los resultados. Alguna idea de por qué?
Behrang Saeedzadeh
Si se modifican los SP, aparecerán. Si lo desea, intente crear un SP ficticio y modifíquelo para ver si aparece en el informe anterior.
Sankar Reddy
Olvídate de mi comentario anterior. Lo averigué. Gracias.
Behrang Saeedzadeh
Me alegro, lo entendiste :-)
Sankar Reddy
Tenga en cuenta que este sistema de rastreo está en desuso según los documentos de MSDN. Microsoft recomienda usar su paradigma de "Eventos extendidos" en su lugar: technet.microsoft.com/en-us/library/bb630354(v=sql.105).aspx
KeithS