症状
假设你已将多个 SQL Server 审核事件配置为写入 Microsoft SQL Server 2016 Service Pack 2 (SP2)中的安全日志。 在这种情况下,你可能会注意到除第一个服务器审核之外的所有服务器审核都将无法写入。 此外,当您添加第二个服务器审核时,可能会收到类似于 SQL Server 错误日志中类似于以下内容的错误消息:
错误:33204,严重性:17,状态:1。
SQL Server Audit 无法写入安全日志
原因
当注册表事件源标志设置为 "0" 时,会出现此问题。
解决方法
此问题的解决方法是下列情况之一:
-
将服务器审核事件写入文件而不是 SQL Server 安全日志。
-
将以下注册表项从0更改为1,以允许通过多个服务器审核事件向 SQL Server 安全日志写入:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Security\MSSQL$<InstanceName>$Audit\EventSourceFlags
注意: 需要重新启动服务器审核才能使新的注册表设置生效。
更改服务器审核 [AuditName] WITH (STATE = OFF) 转向 更改服务器审核 [AuditName] WITH (STATE = ON) 转向
重要说明
错误地编辑注册表可能会严重损坏您的系统。 在对注册表进行更改之前,我们建议你备份计算机上的任何重要数据。
解决方案
SQL Server 2016 的 Service pack 信息
此问题已在 SQL Server 的以下 service pack 中修复:
Service Pack 具有累积性。 每个新 Service Pack 除了包含所有新修复程序外,还包含以前 Service Pack 中的所有修复程序。 我们建议为该服务包应用最新的服务包和最新的累积更新。 在安装最新的 Service Pack 之前,不需要安装以前的 Service Pack。 使用以下文章中的表1查找有关最新服务包和最新累积更新的详细信息。
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
参考
了解 Microsoft 用于描述软件更新的 术语。