ALTER SERVER AUDIT (Transact-SQL)ALTER SERVER AUDIT (Transact-SQL)

Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) JaVerwaltete Azure SQL-InstanzAzure SQL Managed InstanceYesVerwaltete Azure SQL-InstanzAzure SQL Managed InstanceAnwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) JaVerwaltete Azure SQL-InstanzAzure SQL Managed InstanceYesVerwaltete Azure SQL-InstanzAzure SQL Managed Instance

Ändert ein Serverüberwachungsobjekt mithilfe der SQL ServerSQL Server Audit-Funktion.Alters a server audit object using the SQL ServerSQL Server Audit feature. Weitere Informationen finden Sie unter SQL Server Audit (Datenbank-Engine).For more information, see SQL Server Audit (Database Engine).

Symbol für Themenlink Transact-SQL-SyntaxkonventionenTopic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

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.To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

ArgumenteArguments

TO {FILE | APPLICATION_LOG | SECURITY |URL}TO { FILE | APPLICATION_LOG | SECURITY |URL}
Legt den Speicherort des Überwachungsziels fest.Determines the location of the audit target. Die Optionen sind eine Binärdatei, das Windows-Anwendungsprotokoll oder das Windows-Sicherheitsprotokoll.The options are a binary file, the Windows application log, or the Windows security log.

Wichtig

Die SQL-Überwachung funktioniert in Azure SQL Managed Instance auf Serverebene und speichert .xel-Dateien in Azure Blob Storage.In Azure SQL Managed Instance, SQL Audit works at the server level and stores .xel files in Azure blob storage.

FILEPATH = ' os_file_path 'FILEPATH = 'os_file_path'
Der Pfad der Überwachungsliste.The path of the audit trail. Der Dateiname wird auf der Grundlage des Überwachungsnamens und des Überwachungs-GUID generiert.The file name is generated based on the audit name and audit GUID.

MAXSIZE = max_sizeMAXSIZE =max_size
Gibt die maximale Größe an, die die Überwachungsdatei annehmen kann.Specifies the maximum size to which the audit file can grow. Der max_size-Wert muss ein Integer gefolgt von MB, GB, TB oder UNLIMITED sein.The max_size value must be an integer followed by MB, GB, TB, or UNLIMITED. 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.The minimum size that you can specify for max_size is 2 MB and the maximum is 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.When UNLIMITED is specified, the file grows until the disk is full. Die Angabe eines Werts kleiner als 2 MB löst den Fehler MSG_MAXSIZE_TOO_SMALL aus.Specifying a value lower than 2 MB raises MSG_MAXSIZE_TOO_SMALL the error. Der Standardwert ist UNLIMITED.The default value is UNLIMITED.

MAX_ROLLOVER_FILES = integer | UNLIMITEDMAX_ROLLOVER_FILES =integer | UNLIMITED
Gibt die maximale Anzahl der Dateien an, die im Dateisystem beibehalten werden.Specifies the maximum number of files to retain in the file system. Bei der Einstellung MAX_ROLLOVER_FILES=0 gibt es keine Begrenzung für die Anzahl der Rolloverdateien, die erstellt werden.When the setting of MAX_ROLLOVER_FILES=0, there is no limit imposed on the number of rollover files that are created. Der Standardwert ist 0.The default value is 0. Der Maximalwert für die Anzahl der Dateien beträgt 2.147.483.647.The maximum number of files that can be specified is 2,147,483,647.

MAX_FILES =integerMAX_FILES =integer
Gibt die maximale Anzahl von Überwachungsdateien an, die erstellt werden können.Specifies the maximum number of audit files that can be created. Führt keinen Rollover zur ersten Datei aus, wenn die Grenze erreicht wird.Does not roll over to the first file when the limit is reached. Wenn die MAX_FILES-Grenze erreicht wird, schlägt jede Aktion, die zusätzliche Überwachungsereignisse nach sich zieht, fehl.When the MAX_FILES limit is reached, any action that causes additional audit events to be generated fails with an error.
Gilt für: SQL Server 2012 (11.x)SQL Server 2012 (11.x) und höher.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

RESERVE_DISK_SPACE = { ON | OFF }RESERVE_DISK_SPACE = { ON | OFF }
Diese Option ordnet der Datei auf dem Datenträger den MAXSIZE-Wert zu.This option pre-allocates the file on the disk to the MAXSIZE value. Dieser Wert wird nur dann übernommen, wenn MAXSIZE nicht gleich UNLIMITED ist.Only applies if MAXSIZE is not equal to UNLIMITED. Der Standardwert ist OFF.The default value is OFF.

QUEUE_DELAY = integerQUEUE_DELAY =integer
Gibt den Zeitraum in Millisekunden an, der verstreichen kann, bevor die Verarbeitung von Überwachungsaktionen erzwungen wird.Determines the time in milliseconds that can elapse before audit actions are forced to be processed. Der Wert 0 steht für eine synchrone Übermittlung.A value of 0 indicates synchronous delivery. Der minimale festlegbare Abfrageverzögerungswert ist 1000 (1 Sekunde), was auch der Standardwert ist.The minimum settable query delay value is 1000 (1 second), which is the default. 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).The maximum is 2,147,483,647 (2,147,483.647 seconds or 24 days, 20 hours, 31 minutes, 23.647 seconds). Die Angabe eines ungültigen Werts löst den Fehler MSG_INVALID_QUEUE_DELAY aus.Specifying an invalid number, raises the error MSG_INVALID_QUEUE_DELAY.

ON_FAILURE = { CONTINUE | SHUTDOWN | FAIL_OPERATION}ON_FAILURE = { CONTINUE | SHUTDOWN | FAIL_OPERATION}
Gibt an, ob die an das Ziel ausgebende Instanz fehlschlagen, fortgesetzt oder beendet werden soll, wenn SQL ServerSQL Server keine Daten in das Überwachungsprotokoll schreiben kann.Indicates whether the instance writing to the target should fail, continue, or stop if SQL ServerSQL Server cannot write to the audit log.

CONTINUECONTINUE
SQL ServerSQL Server -Vorgänge werden fortgesetzt.operations continue. Überwachungsdatensätze werden nicht beibehalten.Audit records are not retained. Bei der Überwachung wird weiterhin versucht, Ereignisse zu protokollieren. Sie wird fortgesetzt, wenn die Fehlerbedingung aufgelöst wurde.The audit continues to attempt to log events and resumes if the failure condition is resolved. 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.Selecting the continue option can allow unaudited activity, which could violate your security policies. Verwenden Sie diese Option, wenn die weitere Verwendung von Datenbank-EngineDatabase Engine wichtiger als die Beibehaltung einer vollständigen Überwachung ist.Use this option, when continuing operation of the Datenbank-EngineDatabase Engine is more important than maintaining a complete audit.

SHUTDOWNSHUTDOWN
Erzwingt, dass die Instanz von SQL ServerSQL Server heruntergefahren wird, falls SQL ServerSQL Server aus irgendeinem Grund keine Daten in das Überwachungsziel schreiben kann.Forces the instance of SQL ServerSQL Server to shut down, if SQL ServerSQL Server fails to write data to the audit target for any reason. Die Anmeldung, bei der die ALTER-Anweisung ausgeführt wird, muss über die SHUTDOWN-Berechtigung in SQL ServerSQL Server verfügen.The login executing the ALTER statement must have the SHUTDOWN permission within SQL ServerSQL Server. Das Herunterfahren wird auch dann fortgesetzt, wenn die SHUTDOWN-Berechtigung später von der ausführenden Anmeldung widerrufen wird.The shutdown behavior persists even if the SHUTDOWN permission is later revoked from the executing login. Wenn der Benutzer nicht über diese Berechtigung verfügt, schlägt die Anweisung fehl, und die Überwachung wird nicht geändert.If the user does not have this permission, then the statement will fail and the audit will not be modified. Verwenden Sie die Option, wenn ein Überwachungsfehler die Sicherheit oder die Integrität des Systems beeinträchtigen konnte.Use the option when an audit failure could compromise the security or integrity of the system. Weitere Informationen finden Sie unter SHUTDOWN.For more information, see SHUTDOWN.

FAIL_OPERATIONFAIL_OPERATION
Datenbankaktionen schlagen fehl, wenn sie überwachte Ereignisse verursachen.Database actions fail if they cause audited events. Aktionen, die keine überwachten Ereignisse verursachen, können fortgesetzt werden, es können jedoch keine überwachten Ereignisse auftreten.Actions, which do not cause audited events can continue, but no audited events can occur. Bei der Überwachung wird weiterhin versucht, Ereignisse zu protokollieren. Sie wird fortgesetzt, wenn die Fehlerbedingung aufgelöst wurde.The audit continues to attempt to log events and resumes if the failure condition is resolved. Verwenden Sie diese Option, wenn die Beibehaltung einer vollständigen Überwachung wichtiger als der Vollzugriff auf Datenbank-EngineDatabase Engine ist.Use this option when maintaining a complete audit is more important than full access to the Datenbank-EngineDatabase Engine.
Gilt für: SQL Server 2012 (11.x)SQL Server 2012 (11.x) und höher.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

STATE = { ON | OFF }STATE = { ON | OFF }
Aktiviert oder deaktiviert das Sammeln von Datensätzen durch die Überwachung.Enables or disables the audit from collecting records. 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.Changing the state of a running audit (from ON to OFF) creates an audit entry that the audit was stopped, the principal that stopped the audit, and the time the audit was stopped.

MODIFY NAME = new_audit_nameMODIFY NAME = new_audit_name
Ändert den Namen der Überwachung.Changes the name of the audit. Kann nicht zusammen mit einer anderen Option verwendet werden.Cannot be used with any other option.

predicate_expressionpredicate_expression
Gibt den Prädikatausdruck an, mit dessen Hilfe bestimmt wird, ob ein Ereignis verarbeitet werden muss.Specifies the predicate expression used to determine if an event should be processed or not. Die Länge von Prädikatausdrücken ist auf 3000 Zeichen beschränkt, wodurch die Länge von Zeichenfolgenargumenten eingeschränkt wird.Predicate expressions are limited to 3000 characters, which limits string arguments.
Gilt für: SQL Server 2012 (11.x)SQL Server 2012 (11.x) und höher.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

event_field_nameevent_field_name
Ist der Name des Ereignisfelds, das die Prädikatquelle identifiziert.Is the name of the event field that identifies the predicate source. Überwachungsfelder werden in sys.fn_get_audit_file (Transact-SQL) beschrieben.Audit fields are described in sys.fn_get_audit_file (Transact-SQL). Mit Ausnahme von file_name und audit_file_offset können alle Felder überwacht werden.All fields can be audited except file_name and audit_file_offset.
Gilt für: SQL Server 2012 (11.x)SQL Server 2012 (11.x) und höher.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

numbernumber
Ein numerischer Typ einschließlich decimal.Is any numeric type including 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.Limitations are the lack of available physical memory or a number that is too large to be represented as a 64-bit integer.
Gilt für: SQL Server 2012 (11.x)SQL Server 2012 (11.x) und höher.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

' string '' string '
Entweder eine ANSI- oder Unicode-Zeichenfolge, die vom Prädikatvergleich verlangt wird.Either an ANSI or Unicode string as required by the predicate compare. Für die Prädikatvergleichsfunktionen wird keine implizite Zeichenfolgentypkonvertierung ausgeführt.No implicit string type conversion is performed for the predicate compare functions. Die Übergabe des falschen Typs führt zu einem Fehler.Passing the wrong type results in an error.
Gilt für: SQL Server 2012 (11.x)SQL Server 2012 (11.x) und höher.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

BemerkungenRemarks

Sie müssen mindestens eine der Klauseln TO, WITH oder MODIFY NAME angeben, wann Sie ALTER AUDIT aufrufen.You must specify at least one of the TO, WITH, or MODIFY NAME clauses when you call ALTER AUDIT.

Sie müssen den Status einer Überwachung auf OFF festlegen, um Änderungen an der Überwachung vornehmen zu können.You must set the state of an audit to the OFF option in order to make changes to an audit. 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.If ALTER AUDIT is run when an audit is enabled with any options other than STATE=OFF, you receive a MSG_NEED_AUDIT_DISABLED error message.

Sie können Überwachungsspezifikation hinzufügen, ändern und entfernen, ohne eine Überwachung beenden zu müssen.You can add, alter, and remove audit specifications without stopping an audit.

Sie können die GUID einer Überwachung nicht ändern, nachdem die Überwachung erstellt wurde.You cannot change an audit's GUID after the audit has been created.

Die ALTER SERVER AUDIT-Anweisung kann nicht innerhalb einer Benutzertransaktion verwendet werden.ALTER SERVER AUDIT statement cannot be used inside a user transaction.

BerechtigungenPermissions

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.To create, alter, or drop a server audit principal, you must have ALTER ANY SERVER AUDIT or the CONTROL SERVER permission.

BeispieleExamples

A.A. Ändern eines ServerüberwachungsnamensChanging a server audit name

Im folgenden Beispiel wird der Name der Serverüberwachung HIPAA_Audit in HIPAA_Audit_Old geändert.The following example changes the name of the server audit HIPAA_Audit to HIPAA_Audit_Old.

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.B. Ändern eines ServerüberwachungszielsChanging a server audit target

Im folgenden Beispiel wird die Serverüberwachung namens HIPAA_Audit in ein Dateiziel geändert.The following example changes the server audit called HIPAA_Audit to a file target.

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.C. Ändern einer WHERE-Klausel für ServerüberwachungChanging a server audit WHERE clause

Im folgenden Beispiel wird die in Beispiel C für CREATE SERVER AUDIT (Transact-SQL) erstellte WHERE-Klausel geändert.The following example modifies the where clause created in example C of CREATE SERVER AUDIT (Transact-SQL). Mit der neuen WHERE-Klausel wird nach dem benutzerdefinierten Ereignis gefiltert, falls dessen Wert 27 ist.The new WHERE clause filters for the user-defined event if of 27.

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:D. Entfernen einer WHERE-KlauselRemoving a WHERE clause

Im folgenden Beispiel wird ein WHERE-Klausel-Prädikatausdruck entfernt.The following example removes a WHERE clause predicate expression.

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

E.E. Umbenennen einer ServerüberwachungRenaming a server audit

Im folgenden Beispiel wird der Name der Serverüberwachung von FilterForSensitiveData in AuditDataAccess geändert.The following example changes the server audit name from FilterForSensitiveData to AuditDataAccess.

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 InformationenSee Also

DROP SERVER AUDIT (Transact-SQL) DROP SERVER AUDIT (Transact-SQL)
CREATE SERVER AUDIT SPECIFICATION (Transact-SQL) CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)
ALTER SERVER AUDIT SPECIFICATION (Transact-SQL) ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)
DROP SERVER AUDIT SPECIFICATION (Transact-SQL) DROP SERVER AUDIT SPECIFICATION (Transact-SQL)
CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL) CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL) ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)
DROP DATABASE AUDIT SPECIFICATION (Transact-SQL) DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL) ALTER AUTHORIZATION (Transact-SQL)
sys.fn_get_audit_file (Transact-SQL) sys.fn_get_audit_file (Transact-SQL)
sys.server_audits (Transact-SQL) sys.server_audits (Transact-SQL)
sys.server_file_audits (Transact-SQL) sys.server_file_audits (Transact-SQL)
sys.server_audit_specifications (Transact-SQL) sys.server_audit_specifications (Transact-SQL)
sys.server_audit_specification_details (Transact-SQL) sys.server_audit_specification_details (Transact-SQL)
sys.database_audit_specifications (Transact-SQL) sys.database_audit_specifications (Transact-SQL)
sys.database_audit_specification_details (Transact-SQL) sys.database_audit_specification_details (Transact-SQL)
sys.dm_server_audit_status (Transact-SQL) sys.dm_server_audit_status (Transact-SQL)
sys.dm_audit_actions (Transact-SQL) sys.dm_audit_actions (Transact-SQL)
Erstellen einer Serverüberwachung und einer ServerüberwachungsspezifikationCreate a Server Audit and Server Audit Specification