2

无论如何审计一个 SQL 表,您可以在其中获取信息,例如什么应用程序正在写入它以及它何时写入?

有一堆应用程序用户在这里使用,我已经梳理了每一个,找不到他们中的任何一个在 SQL Server 中写入这个表的位置。这是一张重要的桌子。

这让我疯狂。

4

2 回答 2

2

您必须从一开始就设置审计(通常通过触发器写入审计表,其中包括正在写入表的用户或应用程序)。如果您没有在系统中设计审计,则无法找到过去数据的此信息。

当您设置可审计项时,您可能希望包含由这些系统变量填充的字段:

suser_sname()、host_name()、app_name()、getdate()

于 2012-05-08T15:52:38.623 回答
0

如果您知道它发生的确切时间,您可以使用 sp_who2 或sp_whoisactive类型的过程来捕捉它们,这些过程会返回有关当前正在运行的进程的大量有用信息。

但是,听起来您无法预见此活动,因此我建议您对有问题的数据库和表运行 SQL Profiler 跟踪和过滤器。请务必捕获有助于您查明责任方的事件(登录名、主机名等)。网络上有无数的文章可以引导您完成一个简单的跟踪。

于 2012-05-08T16:56:07.540 回答