找出谁在SQL Server上修改了存储过程?

看起来像有人已经login并修改我们的SQL Server数据库上的存储过程。 有没有办法find这个人的证书?

你可以看看默认的轨迹,并很容易找出。 试试Jonathan Kehayias的例子。

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

这是作为一个例子显示,你需要看看ALTER OBJECT事件types。

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

编辑:

代码由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;