SQL 服务器跟踪未捕获所有审计添加数据库用户事件

SQL Server Trace not capturing all Audit Add DB User events

在SQLServer Audit Add DB User Event Class中,有四个Event Sub Classes 定义:

  1. 添加
  2. 掉落
  3. 授予数据库访问权限
  4. 撤销数据库访问权限

(找到 MS 文档 here

当我设置 SQL Server Profiler 来跟踪 Audit Add DB User Event Class 时,它似乎只捕获子类为 3 或 4 而不是 1 或 2 的事件。

为了测试跟踪,我使用以下 SQL 语句:

CREATE USER testuser FOR LOGIN testlogin;
DROP USER testuser;

当我在 SQL Server Management Studio 中 运行 这些语句时,SQL Server Profiler 显示两个 Audit Add DB User Events,一个带有 EventSubClass 3 (Grant数据库访问)和一个 EventSubClass 4(撤消数据库访问),但不显示 EventSubClass 1(添加)或 EventSubClass 2(删除)的任何内容。

据我所知,所有三个偶数子类都应包含在上面使用的 SQL 语句中。为了捕获这些事件子类,是否需要配置一些额外的东西?

自 2012 年以来,旧的跟踪功能已被弃用。我做了一些测试,根据我执行的命令,我可以获得 2。但我从来没有设法获得 1。如果你查看此事件的文档 class,你会看到当你使用古老的程序 sp_adduser、sp_dropuser 等时,它被记录为提供信息。但即使这样做,它似乎也有点不稳定。

当然,您可以将此报告给 MS,但他们(很可能)只会说您应该使用未弃用的技术。即,扩展事件。我非常怀疑 MS 会投入任何资源来解决这个问题,即使这首先会认为这是一个错误。因此,我的建议将是相同的:改为查看扩展事件。

这是我写的关于 "getting into" XE 的博客:http://sqlblog.karaszi.com/tips-for-getting-started-with-extended-events/