sys.fn_get_audit_file (Transact-SQL)sys.fn_get_audit_file (Transact-SQL)

GILT FÜR: jaSQL Server (ab 2008) jaAzure SQL-DatenbankjaAzure SQL Data Warehouse neinParallel Data WarehouseAPPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Gibt Informationen von einer Überwachungsdatei zurück, die von einer Serverüberwachung in SQL ServerSQL Server erstellt wurde.Returns information from an audit file created by a server audit in SQL ServerSQL Server. Weitere Informationen finden Sie unter SQL Server Audit (Datenbank-Engine).For more information, see SQL Server Audit (Database Engine).

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

fn_get_audit_file ( file_pattern,   
    { default | initial_file_name | NULL },   
    { default | audit_record_offset | NULL } )  

ArgumenteArguments

file_patternfile_pattern
Gibt das Verzeichnis oder den Pfad und den Dateinamen für den zu lesenden Überwachungsdateisatz an.Specifies the directory or path and file name for the audit file set to be read. Der Typ ist nvarchar(260).Type is nvarchar(260).

  • SQL Server:SQL Server:

    Dieses Argument muss sowohl einen Pfad (Laufwerksbuchstabe oder Netzwerkfreigabe) als auch einen Dateinamen umfassen. Diese können ein Platzhalterzeichen enthalten.This argument must include both a path (drive letter or network share) and a file name that can include a wildcard. Ein einzelnes Sternchen (*) kann verwendet werden, mehrere Dateien von einem überwachungsdateisatz gesammelt werden.A single asterisk (*) can be used to collect multiple files from an audit file set. Zum Beispiel:For example:

    • <Pfad >\ \* – sammelt alle Überwachungsdateien am angegebenen Speicherort.<path>\\* - Collect all audit files in the specified location.

    • <Pfad > \LoginsAudit_{GUID} – sammelt alle Überwachungsdateien, die dem angegebenen Namen und GUID-Paar aufweisen.<path>\LoginsAudit_{GUID} - Collect all audit files that have the specified name and GUID pair.

    • <path>\LoginsAudit_{GUID}_00_29384.sqlaudit - Collect a specific audit file.<path>\LoginsAudit_{GUID}_00_29384.sqlaudit - Collect a specific audit file.

  • Azure SQL-Datenbank:Azure SQL Database:

    Dieses Argument wird verwendet, eine Blob-URL (einschließlich der Storage-Endpunkt und Container) an.This argument is used to specify a blob URL (including the storage endpoint and container). Während sie einen Sternchen-Platzhalter nicht unterstützt, können Sie einen partielle Datei (Blob)-Namenspräfix (anstelle der vollständigen Blob-Name) verwenden, um mehrere Dateien (Blobs) zu sammeln, die mit diesem Präfix beginnen.While it does not support an asterisk wildcard, you can use a partial file (blob) name prefix (instead of the full blob name) to collect multiple files (blobs) that begin with this prefix. Zum Beispiel:For example:

    • <Storage_endpoint>/<Container>/<ServerName>/<DatabaseName> / – sammelt alle Überwachungsdateien (Blobs) für die jeweilige Datenbank.<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/ - collects all audit files (blobs) for the specific database.

    • <Storage_endpoint>/<Container>/<ServerName>/<DatabaseName> / < AuditName>/<CreationDate>/<FileName>xel – sammelt eine bestimmte Überwachungsdatei (Blob).<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/<AuditName>/<CreationDate>/<FileName>.xel - collects a specific audit file (blob).

Hinweis

Einen Pfad ohne ein Dateinamenmuster zu übergeben generiert einen Fehler.Passing a path without a file name pattern will generate an error.

initial_file_nameinitial_file_name
Gibt den Pfad und den Namen einer bestimmten Datei im Überwachungsdateisatz an, von der an die Überwachungsdatensätze gelesen werden sollen.Specifies the path and name of a specific file in the audit file set to start reading audit records from. Der Typ ist nvarchar(260).Type is nvarchar(260).

Hinweis

Die ' initial_file_name ' -Argument muss gültige Einträge enthalten, oder muss entweder die standardmäßige enthalten | NULL-Wert.The initial_file_name argument must contain valid entries or must contain either the default | NULL value.

audit_record_offsetaudit_record_offset
Gibt einen bekannten Speicherort mit der für initial_file_name angegebenen Datei an.Specifies a known location with the file specified for the initial_file_name. Wenn dieses Argument verwendet wird, beginnt die Funktion mit dem Lesen beim ersten Datensatz des Puffers, der direkt nach dem festgelegten Offset folgt.When this argument is used the function will start reading at the first record of the Buffer immediately following the specified offset.

Hinweis

Die ' audit_record_offset ' stellen -Argument muss gültige Einträge enthalten, oder muss entweder die standardmäßige enthalten | NULL-Wert.The audit_record_offset argument must contain valid entries or must contain either the default | NULL value. Der Typ ist Bigint.Type is bigint.

Zurückgegebene TabellenTables Returned

In der folgenden Tabelle wird der Inhalt der Überwachungsdatei beschrieben, die von dieser Funktion zurückgegeben werden kann.The following table describes the audit file content that can be returned by this function.

SpaltennameColumn name TypType DescriptionDescription
event_timeevent_time datetime2datetime2 Datum und Uhrzeit, wann die überwachbare Aktion ausgelöst wird.Date and time when the auditable action is fired. Lässt keine NULL-Werte zu.Is not nullable.
sequence_numbersequence_number intint Hält die Reihenfolge der Datensätze innerhalb eines einzelnen Überwachungsdatensatzes fest, der zu groß für den Schreibpuffer für Überwachungen ist.Tracks the sequence of records within a single audit record that was too large to fit in the write buffer for audits. Lässt keine NULL-Werte zu.Is not nullable.
action_idaction_id varchar(4)varchar(4) ID der Aktion.ID of the action. Lässt keine NULL-Werte zu.Is not nullable.
succeededsucceeded bitbit Gibt an, ob die Aktion, die das Ereignis ausgelöst wurde erfolgreich erstellt wurde.Indicates whether the action that triggered the event succeeded. Lässt keine NULL-Werte zu.Is not nullable. Für alle Ereignisse außer Anmeldeereignisse meldet dies nur, ob die Berechtigungsüberprüfung erfolgreich war oder fehlgeschlagen ist, nicht der Vorgang.For all events other than login events, this only reports whether the permission check succeeded or failed, not the operation.
1 = Erfolg1 = success
0 = Fehler0 = fail
permission_bitmaskpermission_bitmask varbinary(16)varbinary(16) In einigen Aktionen sind dies die Berechtigungen, die gewährt, verweigert oder widerrufen wurden.In some actions, this is the permissions that were grant, denied, or revoked.
is_column_permissionis_column_permission bitbit Flag, das angibt, ob dies eine Berechtigung auf Spaltenebene ist.Flag indicating if this is a column level permission. Lässt keine NULL-Werte zu.Is not nullable. Gibt 0 zurück wenn permission_bitmask = 0.Returns 0 when the permission_bitmask = 0.
1 = TRUE1 = true
0 = False0 = false
session_idsession_id smallintsmallint Die ID der Sitzung, in der das Ereignis aufgetreten ist.ID of the session on which the event occurred. Lässt keine NULL-Werte zu.Is not nullable.
server_principal_idserver_principal_id intint ID des Anmeldekontexts, in dem die Aktion ausgeführt wird.ID of the login context that the action is performed in. Lässt keine NULL-Werte zu.Is not nullable.
database_principal_iddatabase_principal_id intint ID des Datenbankbenutzerkontexts, in dem die Aktion ausgeführt wird.ID of the database user context that the action is performed in. Lässt keine NULL-Werte zu.Is not nullable. Wenn dies nicht anwendbar ist, wird 0 zurückgegeben.Returns 0 if this does not apply. Zum Beispiel bei einem Servervorgang.For example, a server operation.
target_server_principal_idtarget_server_principal_id intint Serverprinzipal, auf dem der GRANT/DENY/REVOKE-Vorgang ausgeführt wird.Server principal that the GRANT/DENY/REVOKE operation is performed on. Lässt keine NULL-Werte zu.Is not nullable. Falls nicht zutreffend, wird 0 zurückgegeben.Returns 0 if not applicable.
target_database_principal_idtarget_database_principal_id intint Der Datenbankprinzipal, auf dem der GRANT/DENY/REVOKE-Vorgang ausgeführt wird.The database principal the GRANT/DENY/REVOKE operation is performed on. Lässt keine NULL-Werte zu.Is not nullable. Falls nicht zutreffend, wird 0 zurückgegeben.Returns 0 if not applicable.
object_idobject_id intint Die ID der Entität, bei der die Überwachung aufgetreten ist.The ID of the entity on which the audit occurred. Dazu gehören:This includes the following:
Server-ObjekteServer objects
DatenbankenDatabases
DatenbankobjekteDatabase objects
SchemaobjekteSchema objects
Lässt keine NULL-Werte zu.Is not nullable. Gibt 0 zurück, wenn die Entität der Server selbst ist oder die Überwachung nicht auf Objektebene durchgeführt wird.Returns 0 if the entity is the Server itself or if the audit is not performed at an object level. Zum Beispiel bei der Authentifizierung.For example, Authentication.
class_typeclass_type varchar(2)varchar(2) Der Typ der überwachbaren Entität, bei der die Überwachung auftritt.The type of auditable entity that the audit occurs on. Lässt keine NULL-Werte zu.Is not nullable.
session_server_principal_namesession_server_principal_name sysnamesysname Der Serverprinzipal für die Sitzung.Server principal for session. Lässt NULL-Werte zu.Is nullable.
server_principal_nameserver_principal_name sysnamesysname Aktuelle Anmeldung.Current login. Lässt NULL-Werte zu.Is nullable.
server_principal_sidserver_principal_sid varbinaryvarbinary Aktuelle Anmeldungs-SID.Current login SID. Lässt NULL-Werte zu.Is nullable.
database_principal_namedatabase_principal_name sysnamesysname Aktueller Benutzer.Current user. Lässt NULL-Werte zu.Is nullable. Gibt NULL zurück, wenn nicht verfügbar.Returns NULL if not available.
target_server_principal_nametarget_server_principal_name sysnamesysname Zielanmeldung der Aktion.Target login of action. Lässt NULL-Werte zu.Is nullable. Falls nicht zutreffend, wird NULL zurückgegeben.Returns NULL if not applicable.
target_server_principal_sidtarget_server_principal_sid varbinaryvarbinary SID der zielanmeldung.SID of target login. Lässt NULL-Werte zu.Is nullable. Falls nicht zutreffend, wird NULL zurückgegeben.Returns NULL if not applicable.
target_database_principal_nametarget_database_principal_name sysnamesysname Der Zielbenutzer der Aktion.Target user of action. Lässt NULL-Werte zu.Is nullable. Falls nicht zutreffend, wird NULL zurückgegeben.Returns NULL if not applicable.
server_instance_nameserver_instance_name sysnamesysname Der Name der Serverinstanz, in der die Überwachung aufgetreten ist.Name of the server instance where the audit occurred. Das Standardformat Server\Instanz wird verwendet.The standard server\instance format is used.
database_namedatabase_name sysnamesysname Der Datenbankkontext, in dem die Aktion aufgetreten ist.The database context in which the action occurred. Lässt NULL-Werte zu.Is nullable. Gibt NULL zurück, für die Überwachungen auf Serverebene ausgeführt wird.Returns NULL for audits occurring at the server level.
schema_nameschema_name sysnamesysname Der Schemakontext, in dem die Aktion aufgetreten ist.The schema context in which the action occurred. Lässt NULL-Werte zu.Is nullable. Gibt NULL für Überwachungen, die außerhalb eines Schemas auftreten.Returns NULL for audits occurring outside a schema.
object_nameobject_name sysnamesysname Der Name der Entität, bei der die Überwachung aufgetreten ist.The name of the entity on which the audit occurred. Dazu gehören:This includes the following:
Server-ObjekteServer objects
DatenbankenDatabases
DatenbankobjekteDatabase objects
SchemaobjekteSchema objects
Lässt NULL-Werte zu.Is nullable. Gibt NULL zurück, wenn die Entität der Server selbst ist oder die Überwachung nicht auf Objektebene durchgeführt wird.Returns NULL if the entity is the Server itself or if the audit is not performed at an object level. Zum Beispiel bei der Authentifizierung.For example, Authentication.
statementstatement nvarchar(4000)nvarchar(4000) TSQL-Anweisung, falls vorhanden.TSQL statement if it exists. Lässt NULL-Werte zu.Is nullable. Falls nicht zutreffend, wird NULL zurückgegeben.Returns NULL if not applicable.
additional_informationadditional_information nvarchar(4000)nvarchar(4000) Eindeutige Informationen, die nur für ein einzelnes Ereignis gelten, werden als XML zurückgegeben.Unique information that only applies to a single event is returned as XML. Eine kleine Anzahl überwachbarer Aktionen enthält diese Art von Informationen.A small number of auditable actions contain this kind of information.

Eine Ebene des TSQL-Stapels wird im XML-Format für Aktionen angezeigt, denen ein TSQL-Stapel zugeordnet ist.One level of TSQL stack will be displayed in XML format for actions that have TSQL stack associated with them. Das XML-Format sieht folgendermaßen aus:The XML format will be:

<tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack>

Frame nest_level gibt die aktuelle Schachtelungsebene des Frames an.Frame nest_level indicates the current nesting level of the frame. Der Modulname (database_name, schema_name und object_name) wird in einem aus drei Teilen bestehenden Format dargestellt.The Module name is represented in three part format (database_name, schema_name and object_name). Der Modulname wird analysiert, wie ungültige XML-Escapezeichen '\<', '>', '/', '_x'.The module name will be parsed to escape invalid xml characters like '\<', '>', '/', '_x'. Werden sie als mit Escapezeichen versehen werden _xHHHH\_.They will be escaped as _xHHHH\_. HHHH steht für den vierstelligen hexadezimalen UCS 2-Code für das ZeichenThe HHHH stands for the four-digit hexadecimal UCS-2 code for the character

Lässt NULL-Werte zu.Is nullable. Gibt NULL zurück, wenn keine zusätzlichen vom Ereignis gemeldeten Informationen vorliegen.Returns NULL when there is no additional information reported by the event.
file_namefile_name varchar(260)varchar(260) Der Pfad und der Name der Überwachungsprotokolldatei, aus der der Datensatz stammt.The path and name of the audit log file that the record came from. Lässt keine NULL-Werte zu.Is not nullable.
audit_file_offsetaudit_file_offset bigintbigint Der Pufferoffset in der Datei, die den Überwachungsdatensatz enthält.The buffer offset in the file that contains the audit record. Lässt keine NULL-Werte zu.Is not nullable.
user_defined_event_iduser_defined_event_id smallintsmallint Gilt für: SQL Server 2012 (11.x)SQL Server 2012 (11.x) bis SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

Benutzerdefinierte Ereignis-Id als Argument übergebenen Sp_audit_write.User defined event id passed as an argument to sp_audit_write. NULL für Systemereignisse (Standard) und ungleich 0 für ein benutzerdefiniertes Ereignis.NULL for system events (default) and non-zero for user-defined event. Weitere Informationen finden Sie unter Sp_audit_write (Transact-SQL).For more information, see sp_audit_write (Transact-SQL).
user_defined_informationuser_defined_information nvarchar(4000)nvarchar(4000) Gilt für: SQL Server 2012 (11.x)SQL Server 2012 (11.x) bis SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

Verwendet, um zusätzliche Informationen zu erfassen, die der Benutzer möchte aufzeichnenUsed to record any extra information the user wants to record in
audit_schema_versionaudit_schema_version intint
sequence_group_idsequence_group_id varbinaryvarbinary Gilt für: nur SQL Server (ab 2016)Applies to: SQL Server only (starting with 2016)
transaction_idtransaction_id bigintbigint Gilt für: nur SQL Server (ab 2016)Applies to: SQL Server only (starting with 2016)
client_ipclient_ip nvarchar(128)nvarchar(128) Gilt für: Azure SQL-Datenbank und SQL Server (ab 2017)Applies to: Azure SQL DB + SQL Server (starting with 2017)
application_nameapplication_name nvarchar(128)nvarchar(128) Gilt für: Azure SQL-Datenbank und SQL Server (ab 2017)Applies to: Azure SQL DB + SQL Server (starting with 2017)
duration_millisecondsduration_milliseconds bigintbigint Gilt für: Azure SQL-DatenbankApplies to: Azure SQL DB only
response_rowsresponse_rows bigintbigint Gilt für: Azure SQL-DatenbankApplies to: Azure SQL DB only
affected_rowsaffected_rows bigintbigint Gilt für: Azure SQL-DatenbankApplies to: Azure SQL DB only
connection_idconnection_id GUIDGUID Gilt für: Azure SQL-DatenbankApplies to: Azure SQL DB only
data_sensitivity_informationdata_sensitivity_information nvarchar(4000)nvarchar(4000) Gilt für: Azure SQL-DatenbankApplies to: Azure SQL DB only

HinweiseRemarks

Wenn die File_pattern Argument übergeben wird, um Fn_get_audit_file verweist auf einen Pfad oder die Datei, die nicht vorhanden ist, oder wenn die Datei nicht um eine Überwachungsdatei ist die MSG_INVALID_AUDIT_FILEFehlermeldung wird zurückgegeben.If the file_pattern argument passed to fn_get_audit_file references a path or file that does not exist, or if the file is not an audit file, the MSG_INVALID_AUDIT_FILE error message is returned.

BerechtigungenPermissions

  • SQL Server: erfordert die CONTROL SERVER Berechtigung.SQL Server: Requires the CONTROL SERVER permission.
  • Azure SQL-Datenbank: erfordert die CONTROL DATABASE Berechtigung.Azure SQL DB: Requires the CONTROL DATABASE permission.
    • Server-Administratoren können die Überwachungsprotokolle aller Datenbanken auf dem Server zugreifen.Server admins can access audit logs of all databases on the server.
    • Nicht-Server-Administratoren können die Überwachungsprotokolle nur aus der aktuellen Datenbank zugreifen.Non server admins can only access audit logs from the current database.
    • BLOBs, die die oben genannten Kriterien nicht erfüllen übersprungen werden (eine Liste der übersprungenen Blobs werden in der Ausgabenachricht der Abfrage angezeigt werden), und die Funktion zurück Protokolle nur aus Blobs, die für die der Zugriff ist zulässig.Blobs that do not meet the above criteria will be skipped (a list of skipped blobs will be displayed in the query output message), and the function will return logs only from blobs for which access is allowed.

BeispieleExamples

  • SQL ServerSQL Server

    Dieses Beispiel liest aus einer Datei namens \\serverName\Audit\HIPPA_AUDIT.sqlaudit.This example reads from a file that is named \\serverName\Audit\HIPPA_AUDIT.sqlaudit.

    SELECT * FROM sys.fn_get_audit_file ('\\serverName\Audit\HIPPA_AUDIT.sqlaudit',default,default);  
    GO  
    
  • Azure SQL-DatenbankAzure SQL Database

    Dieses Beispiel liest aus einer Datei mit dem Namen ShiraServer/MayaDB/SqlDbAuditing_Audit/2017-07-14/10_45_22_173_1.xel:This example reads from a file that is named ShiraServer/MayaDB/SqlDbAuditing_Audit/2017-07-14/10_45_22_173_1.xel:

    SELECT * FROM sys.fn_get_audit_file ('https://mystorage.blob.core.windows.net/sqldbauditlogs/ShiraServer/MayaDB/SqlDbAuditing_Audit/2017-07-14/10_45_22_173_1.xel',default,default);
    GO  
    

    Dieses Beispiel liest aus derselben Datei wie oben, jedoch mit zusätzlichen T-SQL-Klauseln (oben, ORDER BY, und , in denen Klausel zum Filtern die Überwachungsdatensätze, die zurückgegeben werden, indem Sie die (Funktion):This example reads from the same file as above, but with additional T-SQL clauses (TOP, ORDER BY, and WHERE clause for filtering the audit records returned by the function):

    SELECT TOP 10 * FROM sys.fn_get_audit_file ('https://mystorage.blob.core.windows.net/sqldbauditlogs/ShiraServer/MayaDB/SqlDbAuditing_Audit/2017-07-14/10_45_22_173_1.xel',default,default)
    WHERE server_principal_name = 'admin1'
    ORDER BY event_time
    GO
    

    Dieses Beispiel liest alle Überwachungsprotokolle von Servern, die mit beginnen Sh:This example reads all audit logs from servers that begin with Sh:

    SELECT * FROM sys.fn_get_audit_file ('https://mystorage.blob.core.windows.net/sqldbauditlogs/Sh',default,default);
    GO  
    

Ein vollständiges Beispiel für das Erstellen einer Überwachung finden Sie unter SQL Server Audit (Datenbank-Engine).For a full example about how to create an audit, see SQL Server Audit (Database Engine).

Informationen zum Einrichten der Überwachung von Azure SQL-Datenbank finden Sie unter erste Schritte mit SQL-datenbanküberwachung.For information on setting up Azure SQL Database auditing, see Get Started with SQL Database auditing.

Siehe auchSee Also

CREATE SERVER AUDIT (Transact-SQL) CREATE SERVER AUDIT (Transact-SQL)
ALTER SERVER AUDIT (Transact-SQL) ALTER SERVER AUDIT (Transact-SQL)
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.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)
sys.dm_audit_class_type_map (Transact-SQL) sys.dm_audit_class_type_map (Transact-SQL)
Erstellen einer Serverüberwachung und einer ServerüberwachungsspezifikationCreate a Server Audit and Server Audit Specification