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

SQLServer 维护脚本分享(01)谁对数据库对象进行了DDL操作?

发布时间:2020-12-12 12:51:32 所属栏目:MsSql教程 来源:网络整理
导读:--先确定是否开启了默认跟踪exec sp_configure 'show advanced options',1reconfigureexec sp_configure 'default trace enabled' --查看事件类型描述,确定事件id(trace_event_id)SELECT tc.name,te.trace_event_id,te.name,tc.type,CASE tc.type WHEN 0 TH

--先确定是否开启了默认跟踪
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'default trace enabled'



--	查看事件类型描述,确定事件id(trace_event_id)
SELECT tc.name,te.trace_event_id,te.name,tc.type,CASE tc.type WHEN 0 THEN '普通' WHEN 1 THEN '连接' WHEN 2 THEN '错误' END AS [type]
FROM sys.trace_categories tc 
INNER JOIN sys.trace_events te on te.category_id = tc.category_id
ORDER BY tc.name,trace_event_id



sys.trace_events 目录视图包含所有 SQL 跟踪事件的列表,可以自行选择查看所需信息。

如 我要查看谁对对象进行了ddl操作。

--	查看跟踪记录,根据事件id(trace_event_id)
DECLARE @path NVARCHAR(1000)  
SELECT @path = Substring(PATH,1,Len(PATH) - Charindex('',Reverse(PATH))) +'log.trc'  
FROM sys.traces WHERE  id = 1  
SELECT DatabaseID,NTDomainName,NTUserName,HostName,ClientProcessID,ApplicationName,LoginName,StartTime,DatabaseName,ObjectName,EventClass,SessionLoginName
FROM :fn_trace_gettable(@path,0)  
WHERE EventClass in(46,47,164) and DatabaseName<>'tempdb' and ObjectName is not null




sys.traces: https://msdn.microsoft.com/zh-cn/library/ms178579.aspx

(编辑:李大同)

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

    推荐文章
      热点阅读