ALTER SERVER AUDIT (Transact-SQL)

Anwendungsbereich: JaSQL Server (alle unterstützten Versionen) JaVerwaltete Azure SQL-Instanz

Ändert ein Serverüberwachungsobjekt mithilfe der SQL Server Audit-Funktion. Weitere Informationen finden Sie unter SQL Server Audit (Datenbank-Engine).

Symbol für Themenlink Transact-SQL-Syntaxkonventionen

Syntax

ALTER SERVER AUDIT audit_name  
{  
    [ TO { { FILE ( <file_options> [, ...n] ) } | APPLICATION_LOG | SECURITY_LOG } | URL]  
    [ WITH ( <audit_options> [ , ...n] ) ]   
    [ WHERE <predicate_expression> ]  
}  
| REMOVE WHERE  
| MODIFY NAME = new_audit_name  
[ ; ]  
  
<file_options>::=  
{  
      FILEPATH = 'os_file_path'   
    | MAXSIZE = { max_size { MB | GB | TB } | UNLIMITED }   
    | MAX_ROLLOVER_FILES = { integer | UNLIMITED }   
    | MAX_FILES = integer   
    | RESERVE_DISK_SPACE = { ON | OFF }   
}  
  
<audit_options>::=  
{  
      QUEUE_DELAY = integer   
    | ON_FAILURE = { CONTINUE | SHUTDOWN | FAIL_OPERATION }   
    | STATE = = { ON | OFF }   
}  
  
<predicate_expression>::=  
{  
    [NOT ] <predicate_factor>   
    [ { AND | OR } [NOT ] { <predicate_factor> } ]   
    [,...n ]  
}  
  
<predicate_factor>::=   
    event_field_name { = | < > | ! = | > | > = | < | < = } { number | ' string ' }  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 oder früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

TO {FILE | APPLICATION_LOG | SECURITY |URL}
Legt den Speicherort des Überwachungsziels fest. Die Optionen sind eine Binärdatei, das Windows-Anwendungsprotokoll oder das Windows-Sicherheitsprotokoll.

Wichtig

Die SQL-Überwachung funktioniert in Azure SQL Managed Instance auf Serverebene und speichert .xel-Dateien in Azure Blob Storage.

FILEPATH = ' os_file_path '
Der Pfad der Überwachungsliste. Der Dateiname wird auf der Grundlage des Überwachungsnamens und des Überwachungs-GUID generiert.

MAXSIZE = max_size
Gibt die maximale Größe an, die die Überwachungsdatei annehmen kann. Der max_size-Wert muss ein Integer gefolgt von MB, GB, TB oder UNLIMITED sein. Die minimale Größe, die Sie für max_size angeben können, beträgt 2 MB, und die maximale Größe beträgt 2.147.483.647 TB. Wird UNLIMITED angegeben, kann die Größe der Datei so lange zunehmen, bis auf dem Datenträger kein Speicherplatz mehr verfügbar ist. Die Angabe eines Werts kleiner als 2 MB löst den Fehler MSG_MAXSIZE_TOO_SMALL aus. Der Standardwert ist UNLIMITED.

MAX_ROLLOVER_FILES = integer | UNLIMITED
Gibt die maximale Anzahl der Dateien an, die im Dateisystem beibehalten werden. Bei der Einstellung MAX_ROLLOVER_FILES=0 gibt es keine Begrenzung für die Anzahl der Rolloverdateien, die erstellt werden. Der Standardwert ist 0. Der Maximalwert für die Anzahl der Dateien beträgt 2.147.483.647.

MAX_FILES =integer
Gibt die maximale Anzahl von Überwachungsdateien an, die erstellt werden können. Führt keinen Rollover zur ersten Datei aus, wenn die Grenze erreicht wird. Wenn die MAX_FILES-Grenze erreicht wird, schlägt jede Aktion, die zusätzliche Überwachungsereignisse nach sich zieht, fehl.
Gilt für: SQL Server 2012 (11.x) und höher.

RESERVE_DISK_SPACE = { ON | OFF }
Diese Option ordnet der Datei auf dem Datenträger den MAXSIZE-Wert zu. Dieser Wert wird nur dann übernommen, wenn MAXSIZE nicht gleich UNLIMITED ist. Der Standardwert ist OFF.

QUEUE_DELAY = integer
Gibt den Zeitraum in Millisekunden an, der verstreichen kann, bevor die Verarbeitung von Überwachungsaktionen erzwungen wird. Der Wert 0 steht für eine synchrone Übermittlung. Der minimale festlegbare Abfrageverzögerungswert ist 1000 (1 Sekunde), was auch der Standardwert ist. Der maximale Wert beträgt 2.147.483.647 (2.147.483,647 Sekunden oder 24 Tage, 20 Stunden, 31 Minuten und 23,647 Sekunden). Die Angabe eines ungültigen Werts löst den Fehler MSG_INVALID_QUEUE_DELAY aus.

ON_FAILURE = { CONTINUE | SHUTDOWN | FAIL_OPERATION}
Gibt an, ob die an das Ziel ausgebende Instanz fehlschlagen, fortgesetzt oder beendet werden soll, wenn SQL Server keine Daten in das Überwachungsprotokoll schreiben kann.

CONTINUE
SQL Server -Vorgänge werden fortgesetzt. Überwachungsdatensätze werden nicht beibehalten. Bei der Überwachung wird weiterhin versucht, Ereignisse zu protokollieren. Sie wird fortgesetzt, wenn die Fehlerbedingung aufgelöst wurde. Durch Auswählen der Continue-Option können unter Umständen nicht überwachte Aktivitäten ausgeführt werden, die gegen Ihre Sicherheitsrichtlinien verstoßen könnten. Verwenden Sie diese Option, wenn die weitere Verwendung von Datenbank-Engine wichtiger als die Beibehaltung einer vollständigen Überwachung ist.

SHUTDOWN
Erzwingt, dass die Instanz von SQL Server heruntergefahren wird, falls SQL Server aus irgendeinem Grund keine Daten in das Überwachungsziel schreiben kann. Die Anmeldung, bei der die ALTER-Anweisung ausgeführt wird, muss über die SHUTDOWN-Berechtigung in SQL Server verfügen. Das Herunterfahren wird auch dann fortgesetzt, wenn die SHUTDOWN-Berechtigung später von der ausführenden Anmeldung widerrufen wird. Wenn der Benutzer nicht über diese Berechtigung verfügt, schlägt die Anweisung fehl, und die Überwachung wird nicht geändert. Verwenden Sie die Option, wenn ein Überwachungsfehler die Sicherheit oder die Integrität des Systems beeinträchtigen konnte. Weitere Informationen finden Sie unter SHUTDOWN.

FAIL_OPERATION
Datenbankaktionen schlagen fehl, wenn sie überwachte Ereignisse verursachen. Aktionen, die keine überwachten Ereignisse verursachen, können fortgesetzt werden, es können jedoch keine überwachten Ereignisse auftreten. Bei der Überwachung wird weiterhin versucht, Ereignisse zu protokollieren. Sie wird fortgesetzt, wenn die Fehlerbedingung aufgelöst wurde. Verwenden Sie diese Option, wenn die Beibehaltung einer vollständigen Überwachung wichtiger als der Vollzugriff auf Datenbank-Engine ist.
Gilt für: SQL Server 2012 (11.x) und höher.

STATE = { ON | OFF }
Aktiviert oder deaktiviert das Sammeln von Datensätzen durch die Überwachung. Wird der Status einer laufenden Überwachung geändert (von ON zu OFF), wird ein Eintrag erstellt, der angibt, dass die Überwachung angehalten wurde, welcher Prinzipal die Überwachung angehalten hat und zu welchem Zeitpunkt sie angehalten wurde.

MODIFY NAME = new_audit_name
Ändert den Namen der Überwachung. Kann nicht zusammen mit einer anderen Option verwendet werden.

predicate_expression
Gibt den Prädikatausdruck an, mit dessen Hilfe bestimmt wird, ob ein Ereignis verarbeitet werden muss. Die Länge von Prädikatausdrücken ist auf 3000 Zeichen beschränkt, wodurch die Länge von Zeichenfolgenargumenten eingeschränkt wird.
Gilt für: SQL Server 2012 (11.x) und höher.

event_field_name
Ist der Name des Ereignisfelds, das die Prädikatquelle identifiziert. Überwachungsfelder werden in sys.fn_get_audit_file (Transact-SQL) beschrieben. Mit Ausnahme von file_name und audit_file_offset können alle Felder überwacht werden.
Gilt für: SQL Server 2012 (11.x) und höher.

number
Ein numerischer Typ einschließlich decimal. Einschränkungen stellen der verfügbare physische Speicher oder eine Zahl dar, die zu groß ist, um als 64-Bit-Ganzzahl dargestellt werden zu können.
Gilt für: SQL Server 2012 (11.x) und höher.

' string '
Entweder eine ANSI- oder Unicode-Zeichenfolge, die vom Prädikatvergleich verlangt wird. Für die Prädikatvergleichsfunktionen wird keine implizite Zeichenfolgentypkonvertierung ausgeführt. Die Übergabe des falschen Typs führt zu einem Fehler.
Gilt für: SQL Server 2012 (11.x) und höher.

Bemerkungen

Sie müssen mindestens eine der Klauseln TO, WITH oder MODIFY NAME angeben, wann Sie ALTER AUDIT aufrufen.

Sie müssen den Status einer Überwachung auf OFF festlegen, um Änderungen an der Überwachung vornehmen zu können. Wenn ALTER AUDIT ausgeführt wird, während eine Überwachung mit einer anderen Option als STATE=OFF aktiviert ist, erhalten Sie die Fehlermeldung MSG_NEED_AUDIT_DISABLED.

Sie können Überwachungsspezifikation hinzufügen, ändern und entfernen, ohne eine Überwachung beenden zu müssen.

Sie können die GUID einer Überwachung nicht ändern, nachdem die Überwachung erstellt wurde.

Die ALTER SERVER AUDIT-Anweisung kann nicht innerhalb einer Benutzertransaktion verwendet werden.

Berechtigungen

Um einen Serverüberwachungsprinzipal erstellen, ändern oder löschen zu können, müssen Sie über die Berechtigung ALTER ANY SERVER AUDIT oder CONTROL SERVER verfügen.

Beispiele

A. Ändern eines Serverüberwachungsnamens

Im folgenden Beispiel wird der Name der Serverüberwachung HIPAA_Audit in HIPAA_Audit_Old geändert.

USE master  
GO  
ALTER SERVER AUDIT HIPAA_Audit  
WITH (STATE = OFF);  
GO  
ALTER SERVER AUDIT HIPAA_Audit  
MODIFY NAME = HIPAA_Audit_Old;  
GO  
ALTER SERVER AUDIT HIPAA_Audit_Old  
WITH (STATE = ON);  
GO  

B. Ändern eines Serverüberwachungsziels

Im folgenden Beispiel wird die Serverüberwachung namens HIPAA_Audit in ein Dateiziel geändert.

USE master  
GO  
ALTER SERVER AUDIT HIPAA_Audit  
WITH (STATE = OFF);  
GO  
ALTER SERVER AUDIT HIPAA_Audit  
TO FILE (FILEPATH ='\\SQLPROD_1\Audit\',  
          MAXSIZE = 1000 MB,  
          RESERVE_DISK_SPACE=OFF)  
WITH (QUEUE_DELAY = 1000,  
       ON_FAILURE = CONTINUE);  
GO  
ALTER SERVER AUDIT HIPAA_Audit  
WITH (STATE = ON);  
GO  

C. Ändern einer WHERE-Klausel für Serverüberwachung

Im folgenden Beispiel wird die in Beispiel C für CREATE SERVER AUDIT (Transact-SQL) erstellte WHERE-Klausel geändert. Mit der neuen WHERE-Klausel wird nach dem benutzerdefinierten Ereignis gefiltert, falls dessen Wert 27 ist.

ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = OFF)  
GO  
ALTER SERVER AUDIT [FilterForSensitiveData]  
WHERE user_defined_event_id = 27;  
GO  
ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = ON);  
GO  

D: Entfernen einer WHERE-Klausel

Im folgenden Beispiel wird ein WHERE-Klausel-Prädikatausdruck entfernt.

ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = OFF)  
GO  
ALTER SERVER AUDIT [FilterForSensitiveData]  
REMOVE WHERE;  
GO  
ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = ON);  
GO  

E. Umbenennen einer Serverüberwachung

Im folgenden Beispiel wird der Name der Serverüberwachung von FilterForSensitiveData in AuditDataAccess geändert.

ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = OFF)  
GO  
ALTER SERVER AUDIT [FilterForSensitiveData]  
MODIFY NAME = AuditDataAccess;  
GO  
ALTER SERVER AUDIT [AuditDataAccess] WITH (STATE = ON);  
GO  

Weitere Informationen

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