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

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

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

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

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

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

  • 不再记录其他安全事件

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

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

本主题内容

开始之前

限制和局限

SQL Server计算机的管理员应了解域策略可以覆盖安全日志的本地设置。 在这种情况下,域策略可能会覆盖子类别设置 (auditpol /get /subcategory:"application generated" )。 这可能会影响SQL Server记录事件的能力,而无需通过任何方法来检测SQL Server尝试审核的事件不会被记录。

安全性

权限

您必须是 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. 关闭安全策略工具。

另请参阅

SQL Server 审核(数据库引擎)