SQL Server Audit 能否用于跟踪对表执行 DML 的用户的主机名或 IP 地址?

Rit*_*kre 4 sql-server audit

我一直在阅读有关 SQL Server 审计的文章,到目前为止,我已经理解它跟踪已执行的命令以及其他一些附加信息(SPID、对象 ID 和其他内容)。但这是否可以用于唯一标识执行此操作的个人,或执行命令的计算机的某种类型的唯一 ID,例如主机名或 IP 地址?

如果它不能唯一识别机器或执行命令的人,我只是不想浪费时间阅读它。

spa*_*dba 6

使用 SQLAudit,您无法跟踪主机名或 IP 地址。

但是,还有一种基于流扩展事件的审计替代方法。今年早些时候我在博客上写过这件事

基本上,您将获取的锁视为正在表上执行的操作的指示器(读取的共享锁和模式稳定性锁和写入的排他锁),并使用扩展事件会话捕获这些事件。您需要使用流 API 将脚本(或可执行文件)挂接到该会话,并且您可以实现自己的逻辑来过滤、分类和保留您感兴趣的事件。

另一种可能性是通过跟踪捕获“审计架构对象访问事件”事件并将它们流式传输到您自己的自定义应用程序。这是一个教程。在扩展事件中,相同的事件不可用,因为它是为 SQLAudit 实现保留的。