无论如何审计一个 SQL 表,您可以在其中获取信息,例如什么应用程序正在写入它以及它何时写入?
有一堆应用程序用户在这里使用,我已经梳理了每一个,找不到他们中的任何一个在 SQL Server 中写入这个表的位置。这是一张重要的桌子。
这让我疯狂。
无论如何审计一个 SQL 表,您可以在其中获取信息,例如什么应用程序正在写入它以及它何时写入?
有一堆应用程序用户在这里使用,我已经梳理了每一个,找不到他们中的任何一个在 SQL Server 中写入这个表的位置。这是一张重要的桌子。
这让我疯狂。
您必须从一开始就设置审计(通常通过触发器写入审计表,其中包括正在写入表的用户或应用程序)。如果您没有在系统中设计审计,则无法找到过去数据的此信息。
当您设置可审计项时,您可能希望包含由这些系统变量填充的字段:
suser_sname()、host_name()、app_name()、getdate()
如果您知道它发生的确切时间,您可以使用 sp_who2 或sp_whoisactive类型的过程来捕捉它们,这些过程会返回有关当前正在运行的进程的大量有用信息。
但是,听起来您无法预见此活动,因此我建议您对有问题的数据库和表运行 SQL Profiler 跟踪和过滤器。请务必捕获有助于您查明责任方的事件(登录名、主机名等)。网络上有无数的文章可以引导您完成一个简单的跟踪。