将 SQL Server 审核事件写入安全日志

适用于 SQL Server - 仅限 Windows

在高度安全环境中,Windows 安全日志是写入记录对象访问的事件的合适位置。 其他审核位置也受支持,但是更易被篡改。

将 SQL Server 服务器审核写入 Windows 安全日志有三个关键要求:

  • 必须配置审核对象访问设置以捕获事件。 审核策略工具 (auditpol.exe) 公开了审核对象访问类别中的多种子策略设置。 要允许 SQL Server 审核对象访问,请配置应用程序生成的设置。

  • SQL Server 服务正在其下运行的帐户必须拥有“生成安全审核”权限才能写入 Windows 安全日志。 默认情况下,LOCAL SERVICE 和 NETWORK SERVICE 帐户拥有此权限。 如果 SQL Server 正在其中一个帐户下运行,则不需要此步骤。

  • 为 SQL Server 服务帐户访问注册表配置单元提供完整权限 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Security

    重要

    错误编辑注册表会严重损坏您的系统。 更改注册表项之前,建议您备份计算机中的所有重要数据。

限制和局限

  • 域策略可覆盖安全日志的本地设置。 在这种情况下,域策略可能会覆盖子类别设置 (auditpol /get /subcategory:"application generated")。 SQL Server 无法通过任何方法检测其尝试审核的事件不会被记录。

  • 如果审核策略配置不正确,事件可能会丢失。 如果 Windows 审核策略配置为写入 Windows 安全日志,则其可能影响 SQL Server 审核。 通常,将 Windows 安全日志设置为覆盖较旧的事件。 这样可保留最新的事件。 但如果 Windows 安全日志未设置为覆盖较旧的事件,则当安全日志已满时,系统发出 Windows 事件 1104(日志已满)。 此时:

    • 不记录其他安全事件

    • SQL Server 无法检测系统是否能够在安全日志中记录事件,从而导致可能丢失审核事件

    • Box 管理员修复安全日志后,日志记录行为将恢复正常。

  • SQL Server 审核记录包含的数据比常规 Windows 事件日志项目多得多。 此外,根据审核规范的配置,SQL Server 可能在短时间内生成数千条审核记录(每秒数千条)。 在高负载期间,如果将审核记录写入应用程序日志或安全日志,则可能导致不利条件。

    这些不利条件可能包括:

    • 事件日志快速循环(当日志文件达到其大小限制时,事件会很快被覆盖)

    • 从 Windows 事件日志读取的其他应用程序或服务可能受到负面影响

    • 由于事件很快被覆盖,管理员可能无法使用目标事件日志

    管理员为缓解这些不利条件可能需要采取的步骤:

    1. 增加目标日志的大小(若审核规范非常详细,4 GB 不合理)。

    2. 减少审核的事件数。

    3. 将审核记录输出到文件而非事件日志中。

权限

您必须是 Windows 管理员,才能配置这些设置。

在 Windows 中使用 auditpol 配置审核对象访问设置

  1. 使用管理权限打开命令提示符。

    1. 在“开始”菜单中,导航到“命令提示符”,然后选择“以管理员身份运行”

    2. 在“用户帐户控制”对话框打开时,选择“继续”

  2. 执行以下语句以从 SQL Server 启用审核。

    auditpol /set /subcategory:"application generated" /success:enable /failure:enable
    
  3. 关闭命令提示符窗口。

使用 secpol 将生成安全审核权限授予帐户

  1. 对于任何 Windows 操作系统,在“开始”菜单上选择“运行”

  2. 键入 secpol.msc,然后选择“确定”。 在显示“用户访问控制”对话框时,选择“继续”

  3. 在“本地安全策略”工具中,导航到“安全设置”>“本地策略”>“用户权限分配”

  4. 在结果窗格中,打开“生成安全审核”

  5. 在“本地安全设置”选项卡上,选择“添加用户或组”

  6. 在“选择用户、计算机或组”对话框中,键入用户帐户名,例如 domain1\user1,然后选择“确定”,或选择“高级”并搜索帐户。

  7. 选择“确定”

  8. 关闭安全策略工具。

  9. 重新启动 SQL Server 以便启用此设置。

在 Windows 中使用 secpol 配置审核对象访问设置

  1. 如果操作系统的版本早于 Windows Vista 或 Windows Server 2008,则在“开始”菜单上单击“运行”

  2. 键入 secpol.msc,然后选择“确定”。 在显示“用户访问控制”对话框时,选择“继续”

  3. 在“本地安全策略”工具中,导航到“安全设置”>“本地策略”>“审核策略”

  4. 在结果窗格中,打开“审核对象访问”

  5. “本地安全设置” 选项卡上的 “审核这些操作” 区域中,选择 “成功”“失败”

  6. 选择“确定”

  7. 关闭安全策略工具。

另请参阅