使用 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 角色的主体。 |
数据定义语言语句
可以使用下列 DDL 语句创建、更改和删除审核规范:
动态视图和函数
下表列出了可用于 SQL Server 审核的动态视图和函数。
动态视图和函数 |
说明 |
---|---|
为可在审核日志中报告的每项审核操作以及可配置为 SQL Server Audit 一部分的每个审核操作组返回一行。 |
|
提供有关当前审核状态的信息。 |
|
返回一个将审核日志中的 class_type 字段映射到 sys.dm_audit_actions 中的 class_desc 字段的表。 |
|
从由服务器审核创建的审核文件返回信息。 |
目录视图
下表列出了可用于 SQL Server 审核的目录视图。
目录视图 |
说明 |
---|---|
包含有关服务器实例上 SQL Server 审核中的数据库审核规范的信息。 |
|
包含有关所有数据库的服务器实例上 SQL Server 审核中的数据库审核规范的信息。 |
|
服务器实例中每个 SQL Server 审核都各占一行。 |
|
包含有关服务器实例上 SQL Server 审核中的服务器审核规范的信息。 |
|
包含有关服务器实例上 SQL Server 审核中的服务器审核规范详细信息(操作)的信息。 |
|
包含有关服务器实例上 SQL Server 审核中的文件审核类型的存储扩展信息。 |