加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 找出谁在SQL Server上修改了存储过程?

发布时间:2020-12-12 16:54:25 所属栏目:MsSql教程 来源:网络整理
导读:看起来有人登录并修改了我们的SQL Server数据库上的存储过程.有没有办法找出那个人的凭据? 解决方法 您可以查看默认跟踪并轻松搞清楚.试试Jonathan Kehayias的例子. http://sqlblog.com/blogs/jonathan_kehayias/archive/2009/05/27/pass-dba-sig-default-tr
看起来有人登录并修改了我们的SQL Server数据库上的存储过程.有没有办法找出那个人的凭据?

解决方法

您可以查看默认跟踪并轻松搞清楚.试试Jonathan Kehayias的例子.

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

这是作为示例显示的,您需要查看ALTER OBJECT事件类型.

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,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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读