症状
假设在 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 2022 累积更新 6 (CU6) 或更高版本,仍需要解决方法,因为修复不会更改现有注册表值。 对于新实例,应用修补程序后将使用正确的注册表值。
SQL Server 的每个新累积更新都包含上一版本中的所有修补程序和安全修补程序。 建议为 SQL Server 版本安装最新版本:
SQL Server 2016 的 Service Pack 信息
此问题已在 SQL Server 的以下 Service Pack 中修复:
Service Pack 具有累积性。 每个新 Service Pack 除了包含所有新修复程序外,还包含以前 Service Pack 中的所有修复程序。 建议为该服务包应用最新的 Service Pack 和最新的累积更新。 在安装最新的 Service Pack 之前,不需要安装以前的 Service Pack。 使用以下文章中的表 1 查找有关最新 Service Pack 和最新累积更新的详细信息。
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
参考
了解Microsoft用于描述软件更新 的术语 。