• 150455

    文章

  • 1009

    评论

  • 13

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

sql server 2008 查看数据库删表日志


今天遇到一个很奇怪的问题,数据库中的表被无缘无故的删了,而且是有针对性的定时删;查代码找了一条也没看出什么问题,后来查sql server的日志看到删除记录,只能定位到时间,不能定位到操作者;后来从现场人员口中得知,除了本服务在跑之外还有另一个服务也在跑;后来试着交替停掉两个服务,才定位到是另一个服务操作的;原始是另一个服务和本服务使用同一个数据库,且两个服务生成的表名中的关键字一样才删,后来就尝试着改表名,就没有问题了。简直一个坑字了得。
 
通过查看日志追寻原因:

1. select * from sys.configurations where configuration_id = 1568
2. select * from ::fn_trace_getinfo( 0 )
3. select
loginname,
loginsid,
spid,
hostname,
applicationname,
servername,
databasename,
objectname,
e.category_id,
cat.name as [CategoryName] ,
textdata,
starttime,
eventclass,
eventsubclass, --0表示begin,1表示commit
e.name as EventName
from ::fn_trace_gettable( 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\log.trc' , 0 )
inner join sys.trace_events e
on eventclass = trace_event_id
inner join sys.trace_categories as cat
on e.category_id = cat.category_id
where databasename = 'TraceDB' and
objectname is null and --根据objectname来过滤
e.category_id = 5 and --category 5表示对象
e.trace_event_id = 46 --trace_event_id: 46表示Create对象,47表示Drop对象,164表示修改对象


695856371Web网页设计师②群 | 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

0条评论

Loading...


发表评论

电子邮件地址不会被公开。 必填项已用*标注

自定义皮肤 主体内容背景
打开支付宝扫码付款购买视频教程
遇到问题联系客服QQ:419400980
注册梁钟霖个人博客