8.2 审核
8.2.1 审核
SQL Server 2008 引入了审核功能,可以对服务器级别和数据库级别事件组和事件进行审核。
SQL Server 的审核级别有若干种,具体取决于安装环境的政府要求或标准要求。SQL Server 审核提供若干必需的工具和进程,用于启用、存储和查看对各个服务器和数据库对象的审核。
SQL Server 的所有版本均支持服务器级审核。数据库级审核限制为企业版、开发版和评估版等版本。
若要创建、更改或删除服务器审核,主体需要拥有 ALTER ANY SERVER AUDIT 或 CONTROL SERVER 权限。
8.2.2 审核目标
审核由零个或多个审核操作项组成,这些操作项会记录到审核“目标”。审核目标可以是以下三种之一:
(1) 二进制文件
日志将保存到指定的文件夹。
(2) Windows 应用程序事件日志
日志将写入 Windows 的“应用程序”中。
(3) Windows 安全事件日志。
日志将写入 Windows 的“安全”中。
SQL Server 服务正在其下运行的帐户必须拥有“生成安全审核”才能写入 Windows 安全日志。默认情况下,LOCAL SERVICE 和 NETWORK SERVICE 帐户拥有此权限。如果 SQL Server 正在其中一个帐户下运行,则不需要此步骤。
提示:
通常,将 Windows 安全日志设置为覆盖较旧的事件。这样可保留最新的事件。但如果 Windows 安全日志未设置为覆盖较旧的事件,则当安全日志已满时,系统将发出 Windows 事件 1104(日志已满)。此时将不再记录其他安全事件,日志记录行为将在管理员修复安全日志后才恢复正常。
8.2.3 创建服务器审核
“SQL Server 审核”对象收集单个服务器实例或数据库级操作和操作组以进行监视。这种审核处于 SQL Server 实例级别。每个 SQL Server 实例可以具有多个审核。
在 SSMS 中展开“安全性”文件夹,右键单击“审核”,然后在右键菜单中选择“新建审核”。
在“常规”选项卡上依次配置以下选项。
(1)审核名称
审核的名称。这是在创建新审核时自动生成的,但是您可以对其进行编辑。
(2)队列延迟(毫秒)
指定在强制处理审核操作之前可以等待的时间(毫秒)。值 0 指示同步传递。默认的最小值为 1000(即 1 秒)。最大值为 2,147,483,647(约 25 天)。
(3)在审核日志失败时
在写入审核日志时可能会遇到故障导致写入失败,此选项用于指定在写入失败时应如何应对。
◆ 继续
SQL Server 操作将继续。审核记录将不会保留。审核将继续尝试将事件记入日志,并且在故障条件得到解决后将恢复。选择“继续”选项可以允许未经审核的活动,这可能违反了您的安全策略。在数据库引擎的继续操作比维护完整审核更重要时,选择此选项。这是默认选项。
◆ 关闭服务器
在写入目标的服务器实例无法将数据写入审核目标时,强制关闭服务器。发出此命令的登录名必须具有 SHUTDOWN 权限。如果该登录名没有此权限,则该函数将失败并将引发错误消息。将不会发生审核的事件。在审核失败可能损害系统的安全或完整性时,选择此选项。
◆ 失败操作
在 SQL Server Audit 无法写入审核日志的情况下,如果数据库操作将导致审核的事件,则此选项将导致数据库操作失败。将不会发生审核的事件。不会导致审核的事件的操作可以继续。审核将继续尝试将事件记入日志,并且在故障条件得到解决后将恢复。在维护完整审核比对数据库引擎的完全访问权限更重要时,选择此选项。
在审核处于失败状态时,专用管理员连接可继续执行审核的事件。
(4)审核目标
指定数据的审核目标。可用选项包括二进制文件、Windows 应用程序日志或 Windows 安全日志。
当“审核目标”是文件时,指定审核数据写入的文件夹所在的位置,然后在“审核文件最大限制”选项中指定是否限制审核文件的数目。
◆ 在选中了“最大滚动更新文件数”下的“无限制”复选框后,可创建的审核文件数不受任何限制。
◆ 如果选中了“最大滚动更新文件数”,同时取消“无限制”复选框,则可创建的审核文件数目受到“文件数”选项的限制。
◆ 选中“最大文件数”,则指定在达到“文件数”所限制的数量时,导致生成附加审核事件的任何操作都将失败并报告错误。
“文件数”最高为 2,147,483,647。
可以为审核文件设置“最大文件大小”。可以指定 1024 MB 至 2,147,483,647 TB 之间的值。选中下方的“无限制”复选框将不会对文件大小施加限制。默认情况下,“无限制”复选框为选中状态。
“保留磁盘空间”复选框可以指定在磁盘上预先分配与指定的最大文件大小相等的空间。只有在“最大文件大小”下未选中“无限制”复选框的情况下,才能使用此设置。默认情况下,不选中此复选框。
在“筛选器”选项卡上,可以对服务器审核输入一个谓词或 WHERE 子句,以便指定在“常规”页上未提供的附加选项。用小括号将该谓词括起来,例如 (object_name = 'EmployeesTable')。
在完成选项选择后,请单击“确定”。
T-SQL 语法示例如下:
CREATE SERVER AUDIT [Audit-To-File] TO FILE (FILEPATH = N'E:\MSSQL\Audit' ,MAXSIZE = 0 MB ,MAX_ROLLOVER_FILES = 2147483647 ,RESERVE_DISK_SPACE = OFF ) WITH (QUEUE_DELAY = 1000 ,ON_FAILURE = CONTINUE ) GO |
8.2.4 启用审核
定义审核时,仅指定结果的输出位置,这是审核的目标位置。新创建的审核将默认处于“禁用”状态,因此不会自动审核任何操作。启用审核后,审核目标将从审核接收数据。
T-SQL 语法示例如下:
ALTER SERVER AUDIT [Audit-To-File] WITH (STATE = ON); |
8.2.5 查看审核记录
在 SSMS 图形界面中,依次展开“安全性”、“审核”文件夹。右键单击要查看的审核日志,然后选择“查看审核日志”。这将打开“日志文件查看器”对话框。审核记录中的日期和时间都是以 UTC 时间显示。
建议通过使用日志文件查看器查看审核日志。在某些场景中,例如创建自动监视系统,则可以使用 sys.fn_get_audit_file 函数直接读取审核文件中的信息。直接读取该文件将以略有不同的(未处理的)格式返回数据。
SQL Server 审核可以为审核记录中的字符字段存储 4000 个数据字符。当可审核操作返回的 additional_information 和 statement 值返回的字符超过 4000 个时,会将多个记录行写入到单个审核操作的审核报表中以记录此数据。这些记录行只有 sequence_no 值和 statement 值不同,所有其他字段在每一行中是重复的。
SELECT * FROM sys.fn_get_audit_file('E:\MSSQL\Audit\*',null,null) |
本文出自 “SQLServer2014丛书” 博客,谢绝转载!