CREATE SERVER AUDIT (Transact-SQL)

使用 SQL Server Audit 创建服务器审核对象。有关详细信息,请参阅了解 SQL Server 审核

主题链接图标Transact-SQL 语法约定

语法

CREATE SERVER AUDIT audit_name

    TO { [ FILE (<file_options> [ , ...n ]) ] | APPLICATION_LOG | SECURITY_LOG }
    [ WITH ( <audit_options> [ , ...n ] ) ] 
}
[ ; ]
<file_options>::=
{
       FILEPATH = 'os_file_path'
    [ , MAXSIZE = { max_size { MB | GB | TB } | UNLIMITED } ]
    [ , MAX_ROLLOVER_FILES = { integer | UNLIMITED } ]
    [ , RESERVE_DISK_SPACE = { ON | OFF } ] 
}
  
<audit_options>::=
{
    [  QUEUE_DELAY = integer ]
    [ , ON_FAILURE = { CONTINUE | SHUTDOWN } ]
    [ , AUDIT_GUID = uniqueidentifier ]
}

参数

  • TO { FILE | APPLICATION_LOG | SECURITY }
    确定审核目标的位置。选项包括二进制文件、Windows 应用程序日志或 Windows 安全日志。如果未在 Windows 中配置其他设置,SQL Server 无法写入 Windows 安全日志。有关详细信息,请参阅如何将服务器审核事件写入安全日志

    注意注意

    在 Windows XP 上不可写入安全日志。

  • FILEPATH = 'os_file_path'
    审核日志的路径。文件名是基于审核名称和审核 GUID 生成的。

  • MAXSIZE = { max_size }
    指定审核文件可增大到的最大大小。max_size 值必须是后跟 MB、GB、TB 或 UNLIMITED 的整数。为 max_size 指定的最小大小为 2 MB,最大大小为 2,147,483,647 T。如果指定为 UNLIMITED,则文件将增长到磁盘变满为止。指定一个小于 2 MB 的值将引发错误 MSG_MAXSIZE_TOO_SMALL。默认值为 UNLIMITED。

  • MAX_ROLLOVER_FILES = { integer | UNLIMITED }
    指定要保留在文件系统中外加当前文件的最大文件数。MAX_ROLLOVER_FILES 值必须是整数或 UNLIMITED。默认值为 UNLIMITED。在审核重新开始(在 数据库引擎 的实例重新开始或者在审核被关闭后又打开时,可能会发生审核重新开始)或由于已达到 MAXSIZE 而需要新文件时,对此参数进行求值。在对MAX_ROLLOVER_FILES 进行求值时,如果文件的数目超出了 MAX_ROLLOVER_FILES 设置,则会删除最旧的文件。因此,如果 MAX_ROLLOVER_FILES 的设置为 0,则每次对 MAX_ROLLOVER_FILES 设置求值时都会创建新的文件。在对 MAX_ROLLOVER_FILES 设置求值时只会自动删除一个文件;因此,在降低 MAX_ROLLOVER_FILES 的值时,文件数目将不会缩减,除非手动删除旧文件。可以指定的最大文件数为 2,147,483,647。

  • RESERVE_DISK_SPACE = { ON | OFF }
    此选项会按 MAXSIZE 值为磁盘上的文件预先分配大小。仅在 MAXSIZE 不等于 UNLIMITED 时适用。默认值为 OFF。

  • QUEUE_DELAY = integer
    确定在强制处理审核操作之前可以经过的时间(以毫秒为单位)。值 0 指示同步传递。可设置的最小延迟值为 1000(1 秒),这是默认值。最大值为 2,147,483,647(2,147,483.647 秒或者 24 天 20 小时 31 分钟 23.647 秒)。指定无效数字将引发错误 MSG_INVALID_QUEUE_DELAY。

  • ON_FAILURE = { CONTINUE | SHUTDOWN }
    指示在目标无法执行写操作时写入目标的实例是应继续还是停止。发出此命令的登录名必须具有 SHUTDOWN 权限。如果登录名不具有此权限,则该函数将失败并显示 MSG_NO_SHUTDOWN_PERMISSION 消息。默认值为 CONTINUE。

  • AUDIT_GUID = uniqueidentifier
    为了支持数据库镜像之类的方案,审核功能需要一个与在镜像数据库中所找到的 GUID 相匹配的特定 GUID。创建审核之后,即不能修改该 GUID。

注释

服务器审核在创建之后处于禁用状态。

CREATE SERVER AUDIT 语句位于事务范围内。如果对事务进行回滚,也将对该语句进行回滚。

权限

若要创建、更改或删除服务器审核,主体需要拥有 ALTER ANY SERVER AUDIT 或 CONTROL SERVER 权限。

在您将审核信息保存到某一文件时,为了避免被篡改,应限制对文件位置的访问。

示例

A. 创建一个以文件为目标的服务器审核

下面的示例创建一个名为 HIPPA_Audit 的服务器审核,它以二进制文件为目标,而且不带选项。

CREATE SERVER AUDIT HIPAA_Audit
    TO FILE ( FILEPATH ='\\SQLPROD_1\Audit\' );

B. 创建一个带有选项且以 Windows 应用程序日志为目标的服务器审核

下面的示例创建一个名为 HIPPA_Audit 的服务器审核,它以 Windows 应用程序日志作为目标集。每秒向队列中写入一次,在遇到故障时将关闭 SQL Server 引擎。

CREATE SERVER AUDIT HIPAA_Audit
    TO APPLICATION_LOG
    WITH ( QUEUE_DELAY = 1000,  ON_FAILURE = SHUTDOWN);

请参阅

参考

概念