CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
使用 SQL Server 审核功能创建数据库审核规范对象。有关详细信息,请参阅了解 SQL Server 审核。
语法
CREATE DATABASE AUDIT SPECIFICATION audit_specification_name
{
FOR SERVER AUDIT audit_name
[ { ADD ( { <audit_action_specification> | audit_action_group_name } )
} [, ...n] ]
[ WITH ( STATE = { ON | OFF } ) ]
}
[ ; ]
<audit_action_specification>::=
{
action [ ,...n ]ON [ class :: ] securable BY principal [ ,...n ]
}
参数
audit_specification_name
是审核规范的名称。audit_name
是应用此规范的审核的名称。audit_action_specification
是主体对安全对象执行的应记录到审核中的操作的规范。action
是一个或多个数据库级别可审核操作的名称。有关审核操作的列表,请参阅 SQL Server 审核操作组和操作。audit_action_group_name
是一个或多个数据库级别可审核操作组的名称。有关审核操作组的列表,请参阅 SQL Server 审核操作组和操作。class
是安全对象上的类名(如果适用)。securable
是应用审核操作或审核操作组的数据库中的表、视图或其他安全对象。有关详细信息,请参阅安全对象。principal
是应用审核操作或审核操作组的 SQL Server 主体的名称。有关详细信息,请参阅主体(数据库引擎)。WITH ( STATE = { ON | OFF } )
允许或禁止审核收集此审核规范的记录。
注释
数据库审核规范是驻留在给定数据库中的非安全对象。数据库审核规范在创建之后处于禁用状态。
有关 SQL Server 审核中的数据库审核规范的信息,请使用 sys.database_ audit_specifications 目录视图。
当您在用户数据库中创建或修改数据库审核规范时,不要包括针对服务器范围对象(例如系统视图)的审核操作。如果包括服务器范围的对象,将会创建审核。但是,服务器范围对象将不包括,并且将不返回任何错误。若要审核服务器范围的对象,请使用 master 数据库中的数据库审核规范。
权限
具有 ALTER ANY DATABASE AUDIT权限的用户可以创建数据库审核规范并将其绑定到任何审核。
创建数据库审核规范后,具有 CONTROL SERVER 或ALTER ANY DATABASE AUDIT权限的主体或 sysadmin 帐户即可查看该规范。
示例
下面的示例创建名为 Payrole_Security_Audit 的服务器审核,然后创建名为 Payrole_Security_Audit 的数据库审核规范,该规范针对 AdventureWorks 数据库中的 HumanResources.EmployeePayHistory 表,审核 dbo 用户发出的 SELECT 和 INSERT 语句。
USE master ;
GO
-- Create the server audit.
CREATE SERVER AUDIT Payrole_Security_Audit
TO FILE ( FILEPATH =
'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA' ) ;
GO
-- Enable the server audit.
ALTER SERVER AUDIT Payrole_Security_Audit
WITH (STATE = ON) ;
GO
-- Move to the target database.
USE AdventureWorks ;
GO
-- Create the database audit specification.
CREATE DATABASE AUDIT SPECIFICATION Audit_Pay_Tables
FOR SERVER AUDIT Payrole_Security_Audit
ADD (SELECT , INSERT
ON HumanResources.EmployeePayHistory BY dbo )
WITH (STATE = ON) ;
GO
请参阅