Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure 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 ]
}
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 Daten nach Prinzipalen, die in der Prüfung aufgezeichnet werden sollen.
action
Der Name einer oder mehrerer überwachter Aktionen auf Datenbankebene. Eine Liste der Überwachungsaktionsgruppen finden Sie unter SQL Server Audit-Aktionsgruppen und -Aktionen.
audit_action_group_name
Der Name einer oder mehrerer Gruppen von überwachten Aktionen auf Datenbankebene. Eine Liste der Überwachungsaktionsgruppen finden Sie unter SQL Server Audit-Aktionsgruppen und -Aktionen.
class
Der Klassenname (falls zutreffend) für die sicherungsfähige Klasse.
securable
Die Tabelle, Ansicht 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 öffentlichen Datenbankprinzipal, um alle Datenbankprinzipale zu überwachen. Weitere Informationen finden Sie unter Prinzipale (Datenbank-Engine).
MIT ( ZUSTAND = { AUF | FALSCH } )
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, ist diese zunächst deaktiviert.
Berechtigungen
Benutzer mit der ALTER ANY DATABASE AUDIT-Berechtigung können Datenbanküberwachungsspezifikationen erstellen und sie an eine beliebige Überwachung binden.
Nachdem eine Datenbanküberwachungsspezifikation erstellt wurde, können Benutzer mit der CONTROL SERVER Berechtigung oder das sysadmin Konto sie anzeigen.
Beispiele
Die Codebeispiele in diesem Artikel verwenden die AdventureWorks2025- oder AdventureWorksDW2025 Beispieldatenbank, die Sie von der Microsoft SQL Server Samples and Community Projects Homepage herunterladen können.
A. Überwachen von "AUSWÄHLEN" und "EINFÜGEN" in einer Tabelle für ein beliebiges Datenbankprinzipal
Im folgenden Beispiel wird eine Serverüberwachung erstellt, die aufgerufen Payroll_Security_Audit wird, und dann eine DatenbanküberwachungsspezifikationPayroll_Security_Audit, die von jedem Mitglied der SELECT Datenbankrolle für die INSERT Tabelle überprüft und HumanResources.EmployeePayHistory anweisungen aufgerufen wird. Jeder Benutzer wird überwacht, da jeder Benutzer immer Mitglied der öffentlichen Rolle ist.
USE master;
GO
-- Create the server audit.
CREATE SERVER AUDIT Payroll_Security_Audit
TO FILE (FILEPATH = 'D:\SQLAudit\'); -- make sure this path exists
GO
-- Enable the server audit.
ALTER SERVER AUDIT Payroll_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 Payroll_Security_Audit ADD (
SELECT, INSERT ON HumanResources.EmployeePayHistory BY PUBLIC
)
WITH (STATE = ON);
GO
B. Überwachen aller Datenänderungen für alle Objekte in einem Schema für eine bestimmte Datenbankrolle
Im folgenden Beispiel wird eine Serverüberwachung erstellt, die aufgerufen DataModification_Security_Audit wird, und dann eine Datenbanküberwachungsspezifikation, die als Überprüfung Audit_Data_Modification_On_All_Sales_Tablesund INSERTUPDATEAnweisungen von Benutzern in einer neuen Datenbankrolle DELETEbezeichnet SalesUK wird, für alle Objekte im Sales Schema.
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
Zugehörige Aufgaben
Serverüberwachungsspezifikationen:
- SERVER-ÜBERPRÜFUNGSSPEZIFIKATION ERSTELLEN (Transact-SQL)
- ÄNDERN DER SERVER-PRÜFUNGSSPEZIFIKATION (Transact-SQL)
- DROP SERVER-AUDIT-SPEZIFIKATION (Transact-SQL)
Datenbanküberwachungsspezifikationen:
- ERSTELLE DATENBANK-ÜBERWACHUNGSSPEZIFIKATION (Transact-SQL)
- ÄNDERE DATENBANK-PRÜFSPEZIFIKATION (Transact-SQL)
- DROP-DATENBANK-AUDIT-SPEZIFIKATION (Transact-SQL)
Katalogansichten und DMVs:
- 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.datenbankprüfspezifikationen (Transact-SQL)
- sys.database_audit_specification_details (Transact-SQL)
Zugehöriger Inhalt
- Erstellen einer Serverüberwachung und einer Serverüberwachungsspezifikation
- SERVER-ÜBERPRÜFUNG ERSTELLEN (Transact-SQL)
- ÄNDERUNGSÜBERPRÜFUNG DES SERVERS (Transact-SQL)
- DROP SERVER AUDIT (Transact-SQL)
- ÄNDERN DER AUTORISIERUNG (Transact-SQL)
- sys.fn_get_audit_file (Transact-SQL)
- sys.dm_server_audit_status (Transact-SQL)
- sys.dm_audit_actions (Transact-SQL)