CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
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).
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, 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 Transact-SQL-Codebeispiele in diesem Artikel verwenden die AdventureWorks2022
- oder AdventureWorksDW2022
-Beispieldatenbank, die Sie von der Homepage Microsoft SQL Server Samples and Community Projects 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 öffentlichen Datenbankrolle für die HumanResources.EmployeePayHistory
Tabelle überprüft SELECT
und INSERT
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 INSERT
und DELETE
UPDATE
Anweisungen von Benutzern in einer neuen Datenbankrolle SalesUK
bezeichnet Audit_Data_Modification_On_All_Sales_Tables
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:
- CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)
- ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)
- DROP SERVER AUDIT SPECIFICATION (Transact-SQL)
Datenbanküberwachungsspezifikationen:
- CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
- ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)
- DROP DATABASE AUDIT SPECIFICATION (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.database_audit_specifications (Transact-SQL)
- sys.database_audit_specification_details (Transact-SQL)
Zugehöriger Inhalt
- Erstellen einer Serverüberwachung und einer Serverüberwachungsspezifikation
- CREATE SERVER AUDIT (Transact-SQL)
- ALTER SERVER AUDIT (Transact-SQL)
- DROP SERVER AUDIT (Transact-SQL)
- ALTER AUTHORIZATION (Transact-SQL)
- sys.fn_get_audit_file (Transact-SQL)
- sys.dm_server_audit_status (Transact-SQL)
- sys.dm_audit_actions (Transact-SQL)