SQL Server 2008引进了一种新的审计性能,它能使DBA追踪数据库的使用并进行详细审计。我们能在服务器和数据库上安装审计,在单独的数据库对象上激活并用各种不同的格式保存,如二进制文件或Windows Application日志。本文主要讲述的是在SQL Server 2008中如何安装安全审计。 在SQL Server 2008里安装审计,步骤如下:
1. 给每个SQL Server 2008具体实例创建一个SQL Server审计
2. 创建服务器审计规范、数据库审计规范或者其中的一个
3. 激活SQL Server审计
4. 查看审计数据
在这一技巧中,我将复习其中的每一步并举例说名它们怎么进行的。注意大多数情况下这些例子是基于T-SQL语句的。但是,这些步骤也能够用 SQL Server Management Studio界面来执行。如果想了解更多有关SQL Server Management Studio用法的信息,请查看 Microsoft SQL Server联机丛书。
创建SQL Server审计
第一步你应该在SQL Server 2008的一个实例上创建审计,这样就能创建一个SQL Server审计。审计就是为与数据库引擎相关的具体事件集合配置的安全对象。你可以在SQL Server 2008里的一个实例上创建多个审计。
在创建审计时,你必须给它指定一个名称和事件输出的目标位置。目标文件可以是二进制的文件、Windows Security日志或Windows Application日志。你还可以给审计对象指定一个或更多个可选参数。
你可以用CREATE SERVER AUDIT语句,如下所示:
USE master
GO
CREATE SERVER AUDIT SrvAudit
TO FILE (FILEPATH='C:\Data', MAXSIZE=5 MB)
WITH (QUEUE_DELAY = 3000)
注意,你必须在主数据库中创建一个审计。由于审计是和SQL Server实例相联系的,因此你不能在用户数据库中创建。
第一行的CREATE SERVER AUDIT语句仅规定审计名称(如SrvAudit)。第二行的TO 子句确定事件输出时的目标位置。例如,我想将输出结果保存在文件中,所以我必须指定TO FILE并规定FILEPATH 值。注意这只是一个路径名。SQL Server将自动命名输出文件,如下所示:
<audit_name>_<audit_GUID>_<partition_number>.sqlaudit在上面的例子中,TO FILE语句还包括了MAXSIZE参数,MAXSIZE参数将文件大小限制为5 MB。该参数是TO FILE子句可选参数之一。如果你将审计数据迁到Application日志或 Security 日志,你就只需要指定日志名选项,示例如下:
CREATE SERVER AUDIT SrvAudit2 TO APPLICATION_LOG WITH (QUEUE_DELAY = 3000)
就像你看到的一样,TO FILE子句已经被TO APPLICATION_LOG子句所替代并且还没有另外规定其他的参数。
最后一行在CREATE SERVER AUDIT 语句中的就是一个 WITH子句。该子句支持很多个选项,限制了创建审计的方法。在这种情况下,我使用的是QUEUE_DELAY参数并将它的值设为3000。这个参数指定了在创建审计之前要耗费的毫秒数并且。默认数字为 1000 毫秒(即1秒)。
要了解所有CREATE SERVER AUDIT 语句可选择项和本篇文章中的其他语句,请查看Microsoft SQL Server联机丛书。