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