CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)

適用対象: ○SQL Server XAzure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

SQL ServerSQL Server 監査機能を使用して、データベース監査仕様オブジェクトを作成します。Creates a database audit specification object using the SQL ServerSQL Server audit feature. 詳しくは、「SQL Server Audit (データベース エンジン)」を参照してください。For more information, see SQL Server Audit (Database Engine).

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

  
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 ]  
}  

引数Arguments

audit_specification_nameaudit_specification_name
監査仕様の名前を指定します。Is the name of the audit specification.

audit_nameaudit_name
この仕様が適用される監査の名前を指定します。Is the name of the audit to which this specification is applied.

audit_action_specificationaudit_action_specification
監査で記録する、セキュリティ保護可能なリソースに対するプリンシパルによるアクションの仕様を指定します。Is the specification of actions on securables by principals that should be recorded in the audit.

actionaction
データベース レベルの 1 つまたは複数の監査可能なアクションの名前を指定します。Is the name of one or more database-level auditable actions. 監査アクションの一覧については、「SQL Server 監査のアクション グループとアクション」をご覧ください。For a list of audit actions, see SQL Server Audit Action Groups and Actions.

audit_action_group_nameaudit_action_group_name
データベース レベルの 1 つ以上の監査可能なアクション グループの名前を指定します。Is the name of one or more groups of database-level auditable actions. 監査アクション グループの一覧については、「SQL Server 監査のアクション グループとアクション」をご覧ください。For a list of audit action groups, see SQL Server Audit Action Groups and Actions.

classclass
セキュリティ保護可能なリソースのクラス名 (該当する場合) です。Is the class name (if applicable) on the securable.

securablesecurable
監査アクションまたは監査アクション グループを適用するデータベース内のテーブル、ビュー、またはその他のセキュリティ保護可能なオブジェクトを指定します。Is the table, view, or other securable object in the database on which to apply the audit action or audit action group. 詳細については、「 セキュリティ保護可能」を参照してください。For more information, see Securables.

principalprincipal
監査アクションまたは監査アクション グループを適用するデータベース プリンシパルの名前を指定します。Is the name of database principal on which to apply the audit action or audit action group. データベース プリンシパルをすべて監査するには、データベース プリンシパル public を使用します。To audit all database principals use the database principal public. 詳しくは、「プリンシパル (データベース エンジン)」をご覧ください。For more information, see Principals (Database Engine).

WITH ( STATE = { ON | OFF } )WITH ( STATE = { ON | OFF } )
監査による、この監査仕様についてのレコードの収集を有効または無効にします。Enables or disables the audit from collecting records for this audit specification.

RemarksRemarks

データベース監査仕様は、セキュリティ保護できないオブジェクトであり、特定のデータベースに保存されます。Database audit specifications are non-securable objects that reside in a given database. 作成されたデータベース監査仕様は無効な状態です。When a database audit specification is created, it is in a disabled state.

アクセス許可Permissions

ALTER ANY DATABASE AUDIT 権限を持つユーザーは、データベース監査の仕様を作成し、任意の監査にバインドできます。Users with the ALTER ANY DATABASE AUDIT permission can create database audit specifications and bind them to any audit.

データベース監査仕様の作成後は、CONTROL SERVER 権限、ALTER ANY DATABASE AUDIT 権限を持つプリンシパル、または sysadmin アカウントがその仕様を表示できます。After a database audit specification is created, it can be viewed by principals with the CONTROL SERVER, ALTER ANY DATABASE AUDIT permissions, or the sysadmin account.

使用例Examples

A.A. 任意のデータベース プリンシパルについてテーブルで SELECT と INSERT を監査するAudit SELECT and INSERT on a table for any database principal

次の例では、Payrole_Security_Audit というサーバー監査を作成した後、AdventureWorks2012 データベースの HumanResources.EmployeePayHistory テーブルでユーザー (public) による SELECT ステートメントと INSERT ステートメントを監査する、Payrole_Security_Audit というデータベース監査仕様を作成します。The following example creates a server audit called Payrole_Security_Audit and then a database audit specification called Payrole_Security_Audit that audits SELECT and INSERT statements by any user (public), for the HumanResources.EmployeePayHistory table in the AdventureWorks2012 database.

USE master ;  
GO  
-- Create the server audit.  
CREATE SERVER AUDIT Payrole_Security_Audit  
    TO FILE ( FILEPATH =   
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA' ) ;  
GO  
-- Enable the server audit.  
ALTER SERVER AUDIT Payrole_Security_Audit   
WITH (STATE = ON) ;  
GO  
-- Move to the target database.  
USE AdventureWorks2012 ;  
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  

B.B. 特定のデータベース ロールについて sales スキーマの_すべて_のオブジェクトで任意の DML (INSERT、UPDATE、または DELETE) を監査するAudit any DML (INSERT, UPDATE or DELETE) on all objects in the sales schema for a specific database role

次の例では、DataModification_Security_Audit というサーバー監査を作成した後、AdventureWorks2012 データベースでの Sales スキーマのすべてのオブジェクトについて、新しいデータベース ロール SalesUK のユーザーによる INSERTUPDATE および DELETE ステートメントを監査する、Audit_Data_Modification_On_All_Sales_Tables というデータベース監査仕様を作成します。The following example creates a server audit called DataModification_Security_Audit and then a database audit specification called Audit_Data_Modification_On_All_Sales_Tables that audits INSERT, UPDATE and DELETE statements by users in a new database role SalesUK, for all objects in the Sales schema in the AdventureWorks2012 database.

USE master ;  
GO  
-- Create the server audit.
-- Change the path to a path that the SQLServer Service has access to. 
CREATE SERVER AUDIT DataModification_Security_Audit  
    TO FILE ( FILEPATH = 
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA' ) ; 
GO  
-- Enable the server audit.  
ALTER SERVER AUDIT DataModification_Security_Audit   
WITH (STATE = ON) ;  
GO  
-- Move to the target database.  
USE AdventureWorks2012 ;  
GO  
CREATE ROLE SalesUK
GO
-- Create the database audit specification.  
CREATE DATABASE AUDIT SPECIFICATION Audit_Data_Modification_On_All_Sales_Tables  
FOR SERVER AUDIT DataModification_Security_Audit  
ADD ( INSERT, UPDATE, DELETE  
     ON Schema::Sales BY SalesUK )  
WITH (STATE = ON) ;    
GO  

参照See Also

CREATE SERVER AUDIT (Transact-SQL) CREATE SERVER AUDIT (Transact-SQL)
ALTER SERVER AUDIT (Transact-SQL) ALTER SERVER AUDIT (Transact-SQL)
DROP SERVER AUDIT (Transact-SQL) DROP SERVER AUDIT (Transact-SQL)
CREATE SERVER AUDIT SPECIFICATION (Transact-SQL) CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)
ALTER SERVER AUDIT SPECIFICATION (Transact-SQL) ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)
DROP SERVER AUDIT SPECIFICATION (Transact-SQL) DROP SERVER AUDIT SPECIFICATION (Transact-SQL)
CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL) CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL) ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)
DROP DATABASE AUDIT SPECIFICATION (Transact-SQL) DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL) ALTER AUTHORIZATION (Transact-SQL)
sys.fn_get_audit_file (Transact-SQL) sys.fn_get_audit_file (Transact-SQL)
sys.server_audits (Transact-SQL) sys.server_audits (Transact-SQL)
sys.server_file_audits (Transact-SQL) sys.server_file_audits (Transact-SQL)
sys.server_audit_specifications (Transact-SQL) sys.server_audit_specifications (Transact-SQL)
sys.server_audit_specification_details (Transact-SQL) sys.server_audit_specification_details (Transact-SQL)
sys.database_audit_specifications (Transact-SQL) sys.database_audit_specifications (Transact-SQL)
sys.database_audit_specification_details (Transact-SQL) sys.database_audit_specification_details (Transact-SQL)
sys.dm_server_audit_status (Transact-SQL) sys.dm_server_audit_status (Transact-SQL)
sys.dm_audit_actions (Transact-SQL) sys.dm_audit_actions (Transact-SQL)
サーバー監査およびサーバー監査の仕様を作成するCreate a Server Audit and Server Audit Specification