如何将服务器审核事件写入安全日志
在高度安全环境中,Windows 安全日志是写入记录对象访问的事件的合适位置。其他审核位置也受支持,但是更易被篡改。
将 SQL Server 服务器审核写入 Windows 安全日志有两个关键要求:
必须配置审核对象访问设置以捕获事件。可根据您的操作系统而采用最佳的配置方法。
在 Windows Vista 和 Windows Server 2008 中,使用审核策略工具 (auditpol.exe)。审核策略程序公开了审核对象访问类别中的多种子策略设置。若要允许 SQL Server 审核对象访问,请配置应用程序生成的设置。
对于 Windows 的早期版本,审核策略工具不可用。请改用安全策略管理单元 (secpol.msc)。如果可用,优先采用审核策略,因为可以配置更精细的设置。
SQL Server 服务正在其下运行的帐户必须拥有生成安全审核权限才能写入 Windows 安全日志。默认情况下,LOCAL SERVICE 和 NETWORK SERVICE 帐户拥有此权限。如果 SQL Server 正在其中一个帐户下运行,则不需要此步骤。
将 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 配置审核对象访问设置
如果操作系统是 Windows Vista 或 Windows Server 2008,则利用管理权限打开命令提示符。
在**“开始”菜单中,依次指向“所有程序”、“附件”,右键单击“命令提示符”,然后单击“以管理员身份运行”**。
在**“用户帐户控制”对话框打开时,单击“继续”**。
执行以下语句以从 SQL Server 启用审核。
auditpol /set /subcategory:"application generated" /success:enable /failure:enable
关闭命令提示符窗口。
此设置将立即生效。
在 Windows 中使用 secpol 配置审核对象访问设置
如果操作系统的版本早于 Windows Vista 或 Windows Server 2008,则在**“开始”菜单上单击“运行”**。
键入 secpol.msc,然后单击**“确定”。在显示“用户访问控制”对话框时,单击“继续”**。
在“本地安全策略”工具中,依次展开**“安全设置”、“本地策略”,然后单击“审核策略”**。
在结果窗格中,双击**“审核对象访问”**。
在**“本地安全设置”选项卡上的“审核这些操作”区域中,选择“成功”和“失败”**。
单击“确定”。
关闭安全策略工具。
此设置将立即生效。
使用 secpol 将生成安全审核权限授予帐户
对于任何 Windows 操作系统,在**“开始”菜单上单击“运行”**。
键入 secpol.msc,然后单击**“确定”。在显示“用户访问控制”对话框时,单击“继续”**。
在“本地安全策略”工具中,依次展开**“安全设置”、“本地策略”,然后单击“用户权限分配”**。
在结果窗格中,双击**“生成安全审核”**。
在**“本地安全设置”选项卡上,单击“添加用户或组”**。
在**“选择用户、计算机或组”对话框中,键入用户帐户的名称,例如 domain1\user1,然后单击“确定”,或单击“高级”**并搜索帐户。
单击“确定”。
关闭安全策略工具。
重新启动 SQL Server 后,此设置才会生效。