使用 Transact-SQL 创建和管理审核

使用 Management Studio 或 Transact-SQL 执行 Transact-SQL 数据定义语言 (DDL) 语句、动态管理视图和函数或目录视图,可以针对 SQL Server 环境创建简单或复杂的 SQL Server 审核解决方案。

参考主题

可以使用 DDL 语句、动态管理视图和函数以及目录视图来实现 SQL Server Audit 的所有方面。

权限

SQL Server Audit 的每一个功能和命令都有其独特的权限需求。

若要创建、更改或删除服务器审核或服务器审核规范,服务器主体要求具有 ALTER ANY SERVER AUDIT 或 CONTROL SERVER 权限。若要创建、更改或删除数据库审核规范,数据库主体必须具有 ALTER ANY DATABASE AUDIT 权限或针对该数据库的 ALTER 或 CONTROL 权限。此外,主题还必须具有连接到数据库的权限或者具有 ALTER ANY SERVER AUDIT 或 CONTROL SERVER 权限。

除非另有规定,否则查看目录视图的操作会要求主体具有以下身份或权限之一:

  • sysadmin 固定服务器角色成员身份。

  • CONTROL SERVER 权限。

  • VIEW SERVER STATE 权限。

  • ALTER ANY AUDIT 权限。

  • VIEW AUDIT STATE 权限(仅允许主体访问 sys.server_audits 目录视图)。

若要使用动态管理视图,主体必须具有 VIEW SERVER STATE 或 ALTER ANY AUDIT 权限。

有关如何授予权限的详细信息,请参阅 GRANT (Transact-SQL)

注意事项注意

具有 sysadmin 角色的主体可以篡改任意审核组件;具有 db_owner 角色的主体可以篡改数据库中的审核规范。SQL Server Audit 将验证将创建或更改审核规范的登录帐户是否至少具有 ALTER ANY DATABASE AUDIT 权限。但是,它不会在您附加数据库时进行验证。您应假定所有的数据库审核规范的可信度只是相当于具有 sysadmin 或 db_owner 角色的主体。

数据定义语言语句

动态视图和函数

下表列出了可用于 SQL Server 审核的动态视图和函数。

动态视图和函数

说明

sys.dm_audit_actions

为可在审核日志中报告的每项审核操作以及可配置为 SQL Server Audit 一部分的每个审核操作组返回一行。

sys.dm_server_audit_status

提供有关当前审核状态的信息。

sys.dm_audit_class_type_map

返回一个将审核日志中的 class_type 字段映射到 sys.dm_audit_actions 中的 class_desc 字段的表。

fn_get_audit_file

从由服务器审核创建的审核文件返回信息。

目录视图

下表列出了可用于 SQL Server 审核的目录视图。

目录视图

说明

sys.database_ audit_specifications

包含有关服务器实例上 SQL Server 审核中的数据库审核规范的信息。

sys.database_audit_specification_details

包含有关所有数据库的服务器实例上 SQL Server 审核中的数据库审核规范的信息。

sys.server_audits

服务器实例中每个 SQL Server 审核都各占一行。

sys.server_audit_specifications

包含有关服务器实例上 SQL Server 审核中的服务器审核规范的信息。

sys.server_audit_specifications_details

包含有关服务器实例上 SQL Server 审核中的服务器审核规范详细信息(操作)的信息。

sys.server_file_audits

包含有关服务器实例上 SQL Server 审核中的文件审核类型的存储扩展信息。