2009-02-19 73 views
1

这可能看起来像一个愚蠢的问题,但我现在处于一个头 - >墙的情况。SQL Server 2005:删除审计随机记录

我在一个庞大的ERP应用程序中工作,其中SQL Server 2005数据库由多个不同的应用程序更新。我试图找出特定表中删除的来源。

我试过使用Profiler,但是我无法过滤足够的事件类型以便能够识别错误的SP,因为从各个方面来看,数据库的访问次数如此之多。此外,Profiler似乎更多地指向查找DDL更改或对象删除类型操作。

我只是想回答这个问题:什么存储过程。或SQL查询导致记录从表X中删除?

我应该使用什么工具?我希望避免像Trigger based Auditing。或者Profiler是这种调查的最佳工具?还是第三方工具是唯一的度假村?

请提供任何有用的链接,因为我对这个主题相对不熟悉。

回答

1

寻找具有探查的罪魁祸首也能像在大海捞针,尤其是在一个繁忙的系统;如果使用edosoft建议的过滤器无法找到它,请尝试通过消除write = 0的命令,按应用程序名称筛选,通过不像'%select%'的textdata过滤来最小化噪声;你应该能够把它缩小。

如果您真的很绝望,您可以拒绝对桌面上所有用户的删除权限,并等待手机响铃。

您也可以在表上将偶然性SELECT COUNT(*)运行到带有时间戳的工作表中,并尝试将记录计数的任何下降与其他活动相关联。

1

您可以使用SQL Profiler进行此操作,但您需要过滤结果。要监视DELETE语句,请选择“RPC:Starting”和“SP:Starting”事件,并在TextData列上应用过滤器:“TextData LIKE'%DELETE%FROM%'”。

-Edoode