适用于:
SQL Server
- 仅限 Windows
在高度安全环境中,Windows 安全日志是写入记录对象访问的事件的合适位置。 其他审核位置也受支持,但是更易被篡改。
将SQL Server服务器审核写入Windows 安全中心日志有三个关键要求:
必须配置审核对象访问设置以捕获事件。 审核策略工具 (
auditpol.exe
) 公开
审核对象访问
类别中的各种子策略设置。 若要允许SQL Server审核对象访问,请配置
应用程序生成的
设置。
运行SQL Server服务的帐户必须具有
“生成安全审核
”权限才能写入Windows 安全中心日志。 默认情况下,LOCAL SERVICE 和 NETWORK SERVICE 帐户拥有此权限。 如果SQL Server在其中一个帐户下运行,则不需要执行此步骤。
向注册表配置单元
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Security
提供SQL Server服务帐户的完全权限。
错误编辑注册表会严重损坏您的系统。 更改注册表项之前,建议您备份计算机中的所有重要数据。
限制和局限
域策略可以覆盖安全日志的本地设置。
在这种情况下,域策略可能会覆盖子类别设置 (
auditpol /get /subcategory:"application generated"
) 。 SQL Server没有任何方法可以检测它尝试审核的事件不会被记录。
如果审核策略配置不正确,事件可能会丢失。
如果 Windows 审核策略配置为写入Windows 安全中心日志,则它可能会影响SQL Server审核。 通常,将 Windows 安全日志设置为覆盖较旧的事件。 这样可保留最新的事件。 但是,如果未将Windows 安全中心日志设置为覆盖旧事件,则如果安全日志已满,系统会发出 Windows 事件 1104 (日志已满) 。 此时:
不会记录进一步的安全事件
SQL Server无法检测到系统无法在安全日志中记录事件,从而导致审核事件可能丢失
Box 管理员修复安全日志后,日志记录行为将恢复正常。
SQL Server审核记录包含的数据远远多于常规 Windows 事件日志条目。
此外,根据审核规范的配置,SQL Server可能会在短时间内生成数千条审核记录, (每秒) 数千条。 在高负载期间,如果将审核记录写入应用程序日志或安全日志,则可能会导致出现不利条件。
这些不利条件可能包括:
当日志文件达到其大小限制时,事件日志 (事件的快速循环将很快覆盖)
从 Windows 事件日志读取的其他应用程序或服务可能会受到负面影响
由于事件被覆盖得太快,管理员可能无法使用目标事件日志
管理员可以采取的步骤来缓解这些不利条件:
当审核规范非常详细) 时,增加目标日志的大小 (4 GB 并非不合理。
减少正在审核的事件数。
将审核记录输出到文件,而不是事件日志。
执行以下语句以启用SQL Server审核。
auditpol /set /subcategory:"application generated" /success:enable /failure:enable
关闭命令提示符窗口。
使用 向帐户授予生成安全审核权限 secpol
对于任何 Windows 操作系统,在“ 开始 ”菜单上,选择“ 运行”。
键入 secpol.msc ,然后选择“ 确定”。 如果出现“用户访问控制”对话框,请选择“继续”。
在“本地安全策略”工具中,导航到 “安全设置”“ > 本地策略 > ”“用户权限分配”。
在结果窗格中,打开 “生成安全审核”。
在“ 本地安全设置 ”选项卡上,选择“ 添加用户或组”。
在 “选择用户、计算机或组 ”对话框中,键入用户帐户的名称(如 domain1\user1 ),然后选择“ 确定”,或选择“ 高级 ”并搜索帐户。
选择“确定” 。
关闭安全策略工具。
重启SQL Server以启用此设置。
使用 在 Windows 中配置审核对象访问设置 secpol
如果操作系统早于 Windows Vista 或 Windows Server 2008,请在“ 开始 ”菜单上选择“ 运行”。
键入 secpol.msc ,然后选择“ 确定”。 如果出现“用户访问控制”对话框,请选择“继续”。
在“本地安全策略”工具中,导航到 “安全设置”“ > 本地策略 > ”“审核策略”。
在结果窗格中,打开 “审核对象访问”。
在 “本地安全设置” 选项卡上的 “审核这些操作” 区域中,选择 “成功” 和 “失败” 。
选择“确定” 。
关闭安全策略工具。
SQL Server 审核(数据库引擎)