ALTER SERVER AUDIT (Transact-SQL)

Gilt für:SQL ServerAzure SQL Managed Instance

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

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

Argumente

AN { FILE | APPLICATION_LOG | SICHERHEIT | 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.

DATEIPFAD = '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 eine ganze Zahl gefolgt von MB, GB, , TBoder UNLIMITEDsein. Die Mindestgröße, die Sie für max_size angeben können , beträgt 2 MB und die maximale 2.147.483.647 TB. Wenn UNLIMITED angegeben ist, wächst die Datei, bis die Festplatte voll ist. Die Angabe eines Werts unter 2 MB führt zum MSG_MAXSIZE_TOO_SMALL Fehler. Der Standardwert ist UNLIMITED.

MAX_ROLLOVER_FILES = ganze Zahl | UNBEGRENZT

Gibt die maximale Anzahl der Dateien an, die im Dateisystem beibehalten werden. Wenn die Einstellung von MAX_ROLLOVER_FILES = 0gilt, wird keine Begrenzung für die Anzahl der erstellten Rollover-Dateien auferlegt. Der Standardwert ist 0. Der Maximalwert für die Anzahl der Dateien beträgt 2.147.483.647.

MAX_FILES = Ganzzahl

Gibt die maximale Anzahl von Überwachungsdateien an, die erstellt werden können. Wird nicht auf die erste Datei übertragen, wenn das Limit erreicht ist. Wenn der MAX_FILES Grenzwert erreicht ist, schlägt jede Aktion, die bewirkt, dass mehr Überwachungsereignisse generiert werden, mit einem Fehler fehl.

RESERVE_DISK_SPACE = { EIN | AUS }

Diese Option ordnet der Datei auf dem Datenträger den MAXSIZE-Wert zu. gilt nur, wenn MAXSIZE nicht gleich ist UNLIMITED. Der Standardwert ist OFF.

QUEUE_DELAY = Ganzzahl

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). Wenn Sie eine ungültige Nummer angeben, erhalten Sie den Fehler MSG_INVALID_QUEUE_DELAY.

ON_FAILURE = { WEITER | ABSCHALTUNG | FAIL_OPERATION }

Gibt an, ob das Schreiben der Instanz zum Ziel fehlschlagen, fortsetzen oder stoppen sollte, wenn SQL Server nicht in das Audit-Log 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 diese Berechtigung nicht hat, schlägt die Aussage fehl und das Audit 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 geprüften Ereignisse verursachen, können fortgesetzt werden, aber keine geprüften Ereignisse können 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.

ZUSTAND = { ON | FALSCH }

Aktiviert oder deaktiviert das Sammeln von Datensätzen durch die Überwachung. Die Änderung des Zustands eines laufenden Audits (von ON nach OFF) erzeugt einen Audit-Eintrag, der zeigt, dass die Prüfung gestoppt wurde, der Hauptverantwortliche, der die Prüfung gestoppt hat, und die Zeit, zu der die Prüfung gestoppt wurde.

NAME ÄNDERN = new_audit_name

Ändert den Namen der Überwachung. Kann mit keiner anderen Option verwendet werden.

predicate_expression

Gibt den Prädikatausdruck an, mit dessen Hilfe bestimmt wird, ob ein Ereignis verarbeitet werden muss. Prädikatausdrücke sind auf eine Länge von 3.000 Zeichen beschränkt, wodurch Zeichenfolgenargumente begrenzt werden.

event_field_name

Der Name des Ereignisfelds, das die Prädikatquelle identifiziert. Überwachungsfelder werden in sys.fn_get_audit_file beschrieben. Mit Ausnahme von file_name und audit_file_offset können alle Felder überwacht werden.

number

Jeder numerische Typ, einschließlich Dezimalzahl. 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.

'string'

Entweder eine ANSI- oder Unicode-Zeichenfolge, die vom Prädikatvergleich verlangt wird. Für die Prädikatvergleichsfunktionen wird keine implizite Zeichenfolgentypkonvertierung ausgeführt. Das Weitergeben des falschen Typs führt zu einem Fehler

Bemerkungen

Sie müssen mindestens eine der TO, , oder MODIFY NAME Klauseln angeben, wenn Sie aufrufenALTER AUDITWITH.

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, wenn ein Audit mit anderen Optionen als STATE = OFFaktiviert ist, erhalten Sie eine Fehlermeldung MSG_NEED_AUDIT_DISABLED .

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

Man kann die GUID eines Audits nicht mehr ändern, nachdem die Prüfung erstellt wurde.

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

Berechtigungen

Um einen Server-Audit-Principal zu erstellen, zu ändern oder zu entfernen, muss man die Berechtigung ÄNDERN ANY SERVER AUDIT oder die CONTROL SERVER-Berechtigung haben.

Beispiele

A. Namen eines Server-Audits ändern

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-Audit-Ziels

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. Ändere eine Server-Audit WHERE-Klausel

Das folgende Beispiel modifiziert die Where-Klausel, die im Beispiel C von erstellt wurde CREATE SERVER AUDIT. 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: Entferne eine WHERE-Klausel

Das folgende Beispiel entfernt einen WHERE Klauselprädikat-Ausdruck.

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

ALTER SERVER AUDIT [FilterForSensitiveData]
REMOVE WHERE;
GO

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

E. Umbenennung eines Server-Audits

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

Transact-SQL Referenz