CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
適用対象: SQL Server Azure SQL Managed Instance
SQL Server Audit 機能を使用して、データベース監査仕様オブジェクトを作成します。 詳細については、「SQL Server Audit (データベース エンジン)」を参照してください。
構文
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 ]
}
Note
SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。
引数
audit_specification_name
監査仕様の名前を指定します。
audit_name
この仕様が適用される監査の名前を指定します。
audit_action_specification
監査で記録する、セキュリティ保護可能なリソースに対するプリンシパルによるアクションの仕様を指定します。
action
データベース レベルの 1 つまたは複数の監査可能なアクションの名前を指定します。 監査アクションの一覧については、「SQL Server 監査のアクション グループとアクション」をご覧ください。
audit_action_group_name
データベース レベルの 1 つ以上の監査可能なアクション グループの名前を指定します。 監査アクション グループの一覧については、「SQL Server 監査のアクション グループとアクション」をご覧ください。
class
セキュリティ保護可能なリソースのクラス名 (該当する場合) です。
securable
監査アクションまたは監査アクション グループを適用するデータベース内のテーブル、ビュー、またはその他のセキュリティ保護可能なオブジェクトを指定します。 詳細については、「 セキュリティ保護可能」を参照してください。
principal
監査アクションまたは監査アクション グループを適用するデータベース プリンシパルの名前を指定します。 データベース プリンシパルをすべて監査するには、データベース プリンシパル public
を使用します。 詳しくは、「プリンシパル (データベース エンジン)」をご覧ください。
WITH ( STATE = { ON | OFF } )
監査による、この監査仕様についてのレコードの収集を有効または無効にします。
解説
データベース監査仕様は、セキュリティ保護できないオブジェクトであり、特定のデータベースに保存されます。 作成されたデータベース監査仕様は無効な状態です。
アクセス許可
ALTER ANY DATABASE AUDIT
権限を持つユーザーは、データベース監査の仕様を作成し、任意の監査にバインドできます。
データベース監査仕様の作成後は、CONTROL SERVER
権限を持つユーザー、または sysadmin
アカウントがその仕様を表示できます。
例
A. 任意のデータベース プリンシパルについてテーブルで SELECT と INSERT を監査する
次の例では、Payrole_Security_Audit
というサーバー監査を作成した後、AdventureWorks2022
データベースの HumanResources.EmployeePayHistory
テーブルで、public
データベース ロールのすべてのメンバーによる SELECT
ステートメントと INSERT
ステートメントを監査する、Payrole_Security_Audit
というデータベース監査仕様を作成します。 これにより、すべてのユーザーが監査されるようになります。すべてのユーザーは常に public
ロールのメンバーであるからです。
USE master ;
GO
-- Create the server audit.
CREATE SERVER AUDIT Payrole_Security_Audit
TO FILE ( FILEPATH =
'D:\SQLAudit\' ) ; -- make sure this path exists
GO
-- Enable the server audit.
ALTER SERVER AUDIT Payrole_Security_Audit
WITH (STATE = ON) ;
GO
-- Move to the target database.
USE AdventureWorks2022;
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 public )
WITH (STATE = ON) ;
GO
B. 特定のデータベース ロールについて sales スキーマのすべてのオブジェクトで任意の DML (INSERT、UPDATE、または DELETE) を監査する
次の例では、DataModification_Security_Audit
というサーバー監査を作成した後、Audit_Data_Modification_On_All_Sales_Tables
データベースでの INSERT
スキーマのすべてのオブジェクトについて、新しいデータベース ロール UPDATE
のユーザーによる DELETE
、SalesUK
および Sales
ステートメントを監査する、AdventureWorks2022
というデータベース監査仕様を作成します。
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 =
'D:\SQLAudit\' ) ; -- make sure this path exists
GO
-- Enable the server audit.
ALTER SERVER AUDIT DataModification_Security_Audit
WITH (STATE = ON) ;
GO
-- Move to the target database.
USE AdventureWorks2022;
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
参照
CREATE SERVER AUDIT (Transact-SQL)
ALTER SERVER AUDIT (Transact-SQL)
DROP SERVER AUDIT (Transact-SQL)
CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)
ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)
DROP SERVER AUDIT SPECIFICATION (Transact-SQL)
CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)
DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL)
sys.fn_get_audit_file (Transact-SQL)
sys.server_audits (Transact-SQL)
sys.server_file_audits (Transact-SQL)
sys.server_audit_specifications (Transact-SQL)
sys.server_audit_specification_details (Transact-SQL)
sys.database_audit_specifications (Transact-SQL)
sys.database_audit_specification_details (Transact-SQL)
sys.dm_server_audit_status (Transact-SQL)
sys.dm_audit_actions (Transact-SQL)
サーバー監査およびサーバー監査の仕様を作成する