CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)

Gilt für:SQL ServerAzure SQL Managed Instance

Erstellt die Spezifikation eines Datenbanküberwachungsobjekts mithilfe der SQL Server Audit-Funktion. Weitere Informationen finden Sie unter SQL Server Audit (Datenbank-Engine).

Transact-SQL-Syntaxkonventionen

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

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

audit_specification_name
Der Name der Überwachungsspezifikation.

audit_name
Der Name der Überwachung, auf die diese Spezifikation angewendet wird.

audit_action_specification
Die Spezifikation von Aktionen für sicherungsfähige Elemente durch Prinzipale, die in der Überwachung aufgezeichnet werden sollen.

action
Name von einer oder mehreren überwachbaren Aktionen auf Datenbankebene. Eine Liste der Überwachungsaktionsgruppen finden Sie unter SQL Server Audit-Aktionsgruppen und -Aktionen.

audit_action_group_name
Der Name von einer oder mehreren Gruppen von überwachbaren Aktionen auf Datenbankebene. Eine Liste der Überwachungsaktionsgruppen finden Sie unter SQL Server Audit-Aktionsgruppen und -Aktionen.

class
Klassenname (sofern anwendbar) auf dem sicherungsfähigen Element.

securable
Eine Tabelle, Sicht oder ein anderes sicherungsfähiges Objekt in der Datenbank, auf das die Überwachungsaktion oder die Überwachungsaktionsgruppe angewendet werden soll. Weitere Informationen finden Sie unter Securables.

principal
Der Name des Datenbankprinzipals, auf den die Überwachungsaktion oder die Überwachungsaktionsgruppe angewendet werden soll. Verwenden Sie den Datenbankprinzipal public, um die Überwachung aller Datenbankprinzipale gewährleisten zu können. Weitere Informationen finden Sie unter Prinzipale (Datenbank-Engine).

WITH ( STATE = { ON | OFF } )
Aktiviert oder deaktiviert das Sammeln von Datensätzen durch die Überwachung für diese Überwachungsspezifikation.

Bemerkungen

Datenbank-Überwachungsspezifikationen sind nicht sicherungsfähige Objekte, die sich in einer gegebenen Datenbank befinden. Wenn eine Datenbank-Überwachungsspezifikation erstellt wird, befindet sich diese in einem deaktivierten Zustand.

Berechtigungen

Benutzer mit der ALTER ANY DATABASE AUDIT-Berechtigung können Datenbanküberwachungsspezifikationen erstellen und sie an eine beliebige Überwachung binden.

Nach Erstellung einer Datenbanküberwachungsspezifikation kann diese von Benutzern mit der CONTROL SERVER-Berechtigung oder dem sysadmin-Konto angezeigt werden.

Beispiele

A. Überwachen von "AUSWÄHLEN" und "EINFÜGEN" in einer Tabelle für ein beliebiges Datenbankprinzipal

Das folgende Beispiel erstellt zunächst eine Serverüberwachung mit dem Namen Payrole_Security_Audit und anschließend eine Datenbank-Überwachungsspezifikation namens Payrole_Security_Audit, die SELECT- und INSERT-Anweisungen aller Mitglieder der Datenbankrolle public für die Tabelle HumanResources.EmployeePayHistory in der Datenbank AdventureWorks2022 überwacht. Dies hat den Effekt, dass alle Benutzer überwacht werden, da alle Benutzer immer Mitglieder der Rolle public sind.

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. Überwachen aller DML (EINFÜGEN, AKTUALISIEREN oder LÖSCHEN) für alle Objekte im sales-Schema für eine bestimmte Datenbankrolle

Im folgenden Beispiel wird zunächst eine Serverüberwachung mit dem Namen DataModification_Security_Audit und anschließend eine Datenbank-Überwachungsspezifikation mit dem Namen Audit_Data_Modification_On_All_Sales_Tables erstellt, die die INSERT-Anweisungen, UPDATE-Anweisungen und DELETE-Anweisungen der Benutzer in einer neuen Datenbankrolle SalesUK für alle Objekte im Sales-Schema der AdventureWorks2022 Datenbank überwacht.

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  

Weitere Informationen

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)
Erstellen einer Serverüberwachung und einer Serverüberwachungsspezifikation