共用方式為


CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)

使用 SQL Server Audit 功能建立資料庫稽核規格物件。如需詳細資訊,請參閱<了解 SQL Server Audit>。

主題連結圖示Transact-SQL 語法慣例

語法

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 動作群組和動作>。

  • audit_action_group_name
    這是一或多個資料庫層級可稽核的動作群組名稱。如需稽核動作群組的清單,請參閱<SQL Server Audit 動作群組和動作>。

  • class
    這是安全性實體上的類別名稱 (適用的話)。

  • securable
    這是資料庫中套用稽核動作或稽核動作群組的資料表、檢視表或其他安全性實體物件。如需詳細資訊,請參閱<安全性實體>。

  • principal
    這是套用稽核動作或稽核動作群組的 SQL Server 主體名稱。如需詳細資訊,請參閱<主體 (Database Engine)>。

  • WITH ( STATE = { ON | OFF } )
    啟用或停用從這個稽核規格收集而來之記錄的稽核。

備註

資料庫稽核規格是位於給定資料庫內的非安全性實體物件。當建立資料庫稽核規格之後,它就會處於停用狀態。

如需有關 SQL Server 稽核中資料庫稽核規格的詳細資訊,請使用 sys.database_ audit_specifications 目錄檢視。

當您在使用者資料庫中建立或修改資料庫稽核規格時,請勿在伺服器範圍的物件 (如系統檢視) 上包含稽核動作。如果包含了伺服器範圍的物件,將會建立稽核。但是,將不會包含伺服器範圍的物件,而且不會傳回任何錯誤。若要稽核伺服器範圍的物件,請在 master 資料庫中使用資料庫稽核規格。

權限

具有 ALTER ANY DATABASE AUDIT權限的使用者可以建立資料庫稽核規格,並將其繫結至任何稽核。

在建立資料庫稽核規格之後,具有 CONTROL SERVER 或ALTER ANY DATABASE AUDIT權限的主體,或是系統管理員 (sysadmin) 帳戶將可以檢視此規格。

範例

下列範例會針對 AdventureWorks 資料庫中的 HumanResources.EmployeePayHistory 資料表,建立稱為 Payrole_Security_Audit 的伺服器稽核,然後建立可由 dbo 使用者稽核 SELECT 和 INSERT 陳述式的資料庫稽核規格,其名稱為 Payrole_Security_Audit。

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

請參閱

參考

概念