了解SQL Server08数据库审核特性
“ 审核 ”SQL Server 的实例或 SQL Server 数据库 涉及到跟踪和记录系统中发生的事件。您可以使用几种方法来 审核 SQL Server,如 审核 ( 数据库 引擎)中所述。从 SQL Server 2008 Enterprise 开始,您还可以通过使用 SQL Server 审核 来设置自动 审核 。
“审核”SQL Server 的实例或 SQL Server 数据库涉及到跟踪和记录系统中发生的事件。您可以使用几种方法来审核 SQL Server,如审核(数据库引擎)中所述。从 SQL Server 2008 Enterprise 开始,您还可以通过使用 SQL Server 审核来设置自动审核。
SQL Server 的审核级别有若干种,具体取决于您的安装的*要求或标准要求。SQL Server 审核提供若干必需的工具和进程,用于启用、存储和查看对各个服务器和数据库对象的审核。
您可以记录每个实例的服务器审核操作组,或记录每个数据库的数据库审核操作组或数据库审核操作。在每次遇到可审核操作时,都将发生审核事件。
SQL Server 审核组件
“审核”是将若干元素组合到一个包中,用于执行一组特定服务器操作或数据库操作。SQL Server 审核的组件组合生成的输出就称为审核,就如同报表定义与图形和数据元素组合生成报表一样。
SQL Server 审核使用“扩展事件”以帮助创建审核。有关扩展事件的详细信息,请参阅SQL Server 扩展事件简介。
SQL Server 审核
“SQL Server 审核”对象收集单个服务器实例或数据库级操作和操作组以进行监视。这种审核处于 SQL Server 实例级别。每个 SQL Server 实例可以具有多个审核。
定义审核时,将指定结果的输出位置。这是审核的目标位置。审核是在禁用状态下创建的,因此不会自动审核任何操作。启用审核后,审核目标将从审核接收数据。
服务器审核规范
“服务器审核规范”对象属于审核。您可以为每个审核创建一个服务器审核规范,因为它们都是在 SQL Server 实例范围内创建的。
服务器审核规范可收集许多由扩展事件功能引发的服务器级操作组。您可以在服务器审核规范中包括“审核操作组”。审核操作组是预定义的操作组,它们是数据库引擎公开的原子事件。这些操作将发送到审核,审核将它们记录到目标中。
SQL Server 审核操作组和操作主题介绍了服务器级的审核操作组。
数据库审核规范
“数据库审核规范”对象也属于 SQL Server 审核。针对每个审核,您可以为每个 SQL Server 数据库创建一个数据库审核规范。
数据库审核规范可收集由扩展事件功能引发的数据库级审核操作。您可以向数据库审核规范添加审核操作组或审核事件。“审核事件”是可以由 SQL Server 引擎审核的原子操作。“审核操作组”是预定义的操作组。它们都位于 SQL Server 数据库作用域。这些操作将发送到审核,审核将它们记录到目标中。
SQL Server 审核操作组和操作主题介绍了数据库级别审核操作组和审核操作。
目标
审核结果将发送到目标,目标可以是文件、Windows 安全事件日志或 Windows 应用程序事件日志。(在 Windows XP 上不可写入安全日志。)必须定期查看和归档这些日志,以确保目标具有足够的空间来写入更多记录。
重要提示:
任何经过身份验证的用户可以读取和写入到 Windows 应用程序事件日志。应用程序事件日志要求的权限比 Windows 安全事件日志低,安全性低于 Windows 安全事件日志。
必须将 SQL Server 服务帐户应添加到生成安全审核策略中才能写入 Windows 安全日志。默认情况下,本地系统、本地服务和网络服务都是此策略的一部分。此设置可通过使用安全策略管理单元 (secpol.msc) 配置。此外,对于“成功”和“失败”均必须启用“审核对象访问”安全策略。此设置可通过使用安全策略管理单元 (secpol.msc) 配置。在 Windows Vista 或 Windows Server 2008 中,可通过使用审核策略程序 (AuditPol.exe) 从命令行设置更详细的“应用程序生成的”策略。有关启用 Windows 安全日志写入的步骤的详细信息,请参阅如何将服务器审核事件写入安全日志。
有关 Auditpol.exe 程序的详细信息,请参阅知识库文章 921469,如何使用组策略为 Windows Server 2003 域或 Windows 2000 域中的 Windows Vista 客户端计算机配置详细的安全审核设置。
Windows 事件日志对于 Windows 操作系统具有全局性。有关 Windows 事件日志的详细信息,请参阅事件查看器概述。
如果需要关于审核的更精准权限,请使用二进制文件目标。
有关写入目标的审核记录的详细信息,请参阅 SQL Server 审核记录。
使用 SQL Server 审核概述
可以使用 SQL Server Management Studio 或 Transact-SQL 定义审核。在创建并启用审核后,目标将接收各项。
您可以使用 Windows 中的“事件查看器”实用工具来读取 Windows 事件。对于文件目标,您可以使用 SQL Server Management Studio 中的“日志文件查看器”或使用 fn_get_audit_file 函数来读取目标文件。
以下是创建和使用审核的一般过程。
- 创建审核并定义目标。
- 创建映射到审核的服务器审核规范或数据库审核规范。启用审核规范。
- 启用审核。
- 通过使用 Windows“事件查看器”、“日志文件查看器”或 fn_get_audit_file 函数来读取审核事件。
注意事项
如果在启动审核期间出现问题,则服务器将不会启动。在这种情况下,可以在命令行使用 –f 选项来启动服务器。
如果由于为审核指定了 ON_FAILURE=SHUTDOWN 而使得审核失败导致服务器关闭或不启动,则MSG_AUDIT_FORCED_SHUTDOWN 事件将写入日志。由于在第一次遇到此设置时将出现关机,此事件将写入一次。在出现有关审核导致关闭的失败消息后,将写入此事件。管理员可以使用 –m 标志以单用户模式启动 SQL Server,绕过审核引起的关闭。如果在单用户模式下启动,则会将指定了 ON_FAILURE=SHUTDOWN 的任何审核降级为在相应会话中以 ON_FAILURE=CONTINUE 运行。当使用 –m 标志启动 SQL Server 时,MSG_AUDIT_SHUTDOWN_BYPASSED 消息将写入错误日志。
有关服务启动选项的详细信息,请参阅使用 SQL Server 服务启动选项。
将数据库附加到已定义的审核 如果附加的数据库具有审核规范并且指定的 GUID 在服务器上不存在,则将导致“孤立”审核规范。因为服务器实例上不存在具有匹配 GUID 的审核,所以将不记录审核事件。若要更正此情况,请使用 ALTER DATABASE AUDIT SPECIFICATION 命令将孤立审核规范连接到现有服务器审核。或者,使用 CREATE SERVER AUDIT 命令创建一个具有指定 GUID 的新服务器审核。
您可以将定义了审核规范的数据库连接到不支持 SQL Server 审核的另一 SQL Server 版本,如 SQL Server Express,但它不会记录审核事件。
数据库镜像和 SQL Server 审核 已定义了数据库审核规范并使用数据库镜像的数据库将包括此数据库审核规范。若要对已镜像的 SQL 实例进行正确的处理,必须配置下列项:
- 镜像服务器必须拥有具有相同 GUID 的审核才能使数据库审核规范能够写入审核记录。这可以通过使用命令 CREATE AUDIT WITH GUID=
> 进行配置。 - 对于二进制文件目标,镜像服务器服务帐户对要写入审核记录的位置必须具有相应的权限。
- 对于 Windows 事件日志目标,镜像服务器所在计算机上的安全策略必须允许服务帐户访问安全事件日志或应用程序事件日志。
[ 本帖最后由 云杉上的蝴蝶 于 2008-10-21 03:01 编辑 ]