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

Se aplica a:Applies to: síSQL ServerSQL Server (todas las versiones admitidas) yesSQL ServerSQL Server (all supported versions) SíAzure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database SíInstancia administrada de Azure SQLAzure SQL Managed InstanceYesInstancia administrada de Azure SQLAzure SQL Managed Instance síAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse AnalyticsSe aplica a:Applies to: síSQL ServerSQL Server (todas las versiones admitidas) yesSQL ServerSQL Server (all supported versions) SíAzure SQL DatabaseAzure SQL DatabaseYesAzure SQL DatabaseAzure SQL Database SíInstancia administrada de Azure SQLAzure SQL Managed InstanceYesInstancia administrada de Azure SQLAzure SQL Managed Instance síAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics

Devuelve información de un archivo de auditoría creado por una auditoría de servidor en SQL ServerSQL Server.Returns information from an audit file created by a server audit in SQL ServerSQL Server. Para obtener más información, vea SQL Server Audit (motor de base de datos).For more information, see SQL Server Audit (Database Engine).

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

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

ArgumentosArguments

file_patternfile_pattern
Especifica el directorio o la ruta de acceso y el nombre de archivo del conjunto de archivos de auditoría que se van a leer.Specifies the directory or path and file name for the audit file set to be read. El tipo es nvarchar (260).Type is nvarchar(260).

  • SQL Server:SQL Server:

    Este argumento debe incluir una ruta de acceso (letra de unidad o recurso compartido de red) y un nombre de archivo que pueda contener un carácter comodín.This argument must include both a path (drive letter or network share) and a file name that can include a wildcard. Se puede usar un solo asterisco (*) para recopilar varios archivos de un conjunto de archivos de auditoría.A single asterisk (*) can be used to collect multiple files from an audit file set. Por ejemplo:For example:

    • <path>\* : Recopila todos los archivos de auditoría en la ubicación especificada.<path>\* - Collect all audit files in the specified location.

    • ** <path> \ LOGINSAUDIT_ {GUID}***: recopila todos los archivos de auditoría que tienen el nombre y el par GUID especificados.<path>\LoginsAudit_{GUID}* - Collect all audit files that have the specified name and GUID pair.

    • ** <path> \ LOGINSAUDIT_ {GUID} 00_29384. sqlaudit** : recopilar un archivo de auditoría específico.**<path>\LoginsAudit{GUID}_00_29384.sqlaudit** - Collect a specific audit file.

  • Azure SQL Database:Azure SQL Database:

    Este argumento se usa para especificar una dirección URL de BLOB (incluido el punto de conexión de almacenamiento y el contenedor).This argument is used to specify a blob URL (including the storage endpoint and container). Aunque no admite un carácter comodín de asterisco, puede usar un prefijo de nombre de archivo parcial (BLOB) (en lugar del nombre de BLOB completo) para recopilar varios archivos (BLOB) que comienzan con este prefijo.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. Por ejemplo:For example:

    • <Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/ : recopila todos los archivos de auditoría (BLOB) para la base de datos específica.<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/ - collects all audit files (blobs) for the specific database.

    • ** <Storage_endpoint> / <Container> / <ServerName> / <DatabaseName> / <AuditName> / <CreationDate> / <FileName> . Xel** : recopila un archivo de auditoría específico (BLOB).<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/<AuditName>/<CreationDate>/<FileName>.xel - collects a specific audit file (blob).

Nota

Si se pasa una ruta de acceso sin un patrón de nombre de archivo, se producirá un error.Passing a path without a file name pattern will generate an error.

initial_file_nameinitial_file_name
Especifica la ruta y el nombre de un archivo específico del conjunto de archivos de auditoría desde el que hay que empezar a leer registros de auditoría.Specifies the path and name of a specific file in the audit file set to start reading audit records from. El tipo es nvarchar (260).Type is nvarchar(260).

Nota

El argumento initial_file_name debe contener entradas válidas o debe contener el valor predeterminado | Valor NULL.The initial_file_name argument must contain valid entries or must contain either the default | NULL value.

audit_record_offsetaudit_record_offset
Especifica una ubicación conocida con el archivo especificado para initial_file_name.Specifies a known location with the file specified for the initial_file_name. Cuando se usa este argumento, la función inicia la lectura en el primer registro del búfer que está a continuación del desplazamiento especificado.When this argument is used the function will start reading at the first record of the Buffer immediately following the specified offset.

Nota

El argumento audit_record_offset debe contener entradas válidas o debe contener el valor predeterminado | Valor NULL.The audit_record_offset argument must contain valid entries or must contain either the default | NULL value. El tipo es BIGINT.Type is bigint.

Tablas devueltasTables Returned

En la tabla siguiente se describe el contenido del archivo de auditoría que puede devolver esta función.The following table describes the audit file content that can be returned by this function.

Nombre de la columnaColumn name TipoType DescripciónDescription
action_idaction_id varchar(4)varchar(4) Id. de la acción.ID of the action. No acepta valores NULL.Not nullable.
additional_informationadditional_information nvarchar(4000)nvarchar(4000) La información única que se aplica exclusivamente a un evento se devuelve como XML.Unique information that only applies to a single event is returned as XML. Este tipo de información está incluida en un pequeño número de acciones de auditoría.A small number of auditable actions contain this kind of information.

Un nivel de pila de TSQL se mostrará en formato XML para las acciones que tienen asociada la pila de TSQL.One level of TSQL stack will be displayed in XML format for actions that have TSQL stack associated with them. El formato XML será: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 indica el nivel de anidamiento actual del marco.Frame nest_level indicates the current nesting level of the frame. El nombre del módulo se representa en formato de tres partes (nombreDeBaseDeDatos, nombreDeEsquema y nombreDeObjeto).The Module name is represented in three part format (database_name, schema_name and object_name). El nombre del módulo se analizará para escapar caracteres XML no válidos '\<' , como, '>' , '/' , '_x' .The module name will be parsed to escape invalid xml characters like '\<', '>', '/', '_x'. Se convertirán en secuencias de escape como _xHHHH\_ .They will be escaped as _xHHHH\_. HHHH representa el código UCS-2 hexadecimal de cuatro dígitos para el carácter.The HHHH stands for the four-digit hexadecimal UCS-2 code for the character

Acepta valores NULL.Is nullable. Devuelve NULL si el evento no proporciona información adicional.Returns NULL when there is no additional information reported by the event.
affected_rowsaffected_rows bigintbigint Se aplica a: solo Azure SQL DatabaseApplies to: Azure SQL Database only

Número de filas afectadas por la instrucción ejecutada.Number of rows affected by the executed statement.
application_nameapplication_name nvarchar(128)nvarchar(128) Se aplica a: Azure SQL Database + SQL Server (a partir de 2017)Applies to: Azure SQL Database + SQL Server (starting with 2017)

Nombre de la aplicación cliente que ejecutó la instrucción que provocó el evento de auditoríaName of client application which executed the statement that caused the audit event
audit_file_offsetaudit_file_offset bigintbigint Se aplica a: solo SQL ServerApplies to: SQL Server only

Desplazamiento de búfer del archivo que contiene el registro de auditoría.The buffer offset in the file that contains the audit record. No admite valores NULL.Is not nullable.
audit_schema_versionaudit_schema_version intint Siempre 1Always 1
class_typeclass_type varchar(2)varchar(2) El tipo de entidad auditable en la que se produce la auditoría.The type of auditable entity that the audit occurs on. No admite valores NULL.Is not nullable.
client_ipclient_ip nvarchar(128)nvarchar(128) Se aplica a: Azure SQL Database + SQL Server (a partir de 2017)Applies to: Azure SQL Database + SQL Server (starting with 2017)

IP de origen de la aplicación clienteSource IP of the client application
connection_idconnection_id GUIDGUID Se aplica a: Azure SQL Database y SQL instancia administradaApplies to: Azure SQL Database and SQL Managed Instance

Identificador de la conexión en el servidorID of the connection in the server
data_sensitivity_informationdata_sensitivity_information nvarchar(4000)nvarchar(4000) Se aplica a: solo Azure SQL DatabaseApplies to: Azure SQL Database only

Tipos de información y etiquetas de confidencialidad devueltas por la consulta auditada, basados en las columnas clasificadas en la base de datos.Information types and sensitivity labels returned by the audited query, based on the classified columns in the database. Obtenga más información sobre la clasificación y detección de datos de Azure SQL Database.Learn more about Azure SQL Database data discover and classification
database_namedatabase_name sysnamesysname Contexto de base de datos en el que se produjo la acción.The database context in which the action occurred. Acepta valores NULL.Is nullable. Devuelve NULL para las auditorías que se producen en el nivel de servidor.Returns NULL for audits occurring at the server level.
database_principal_iddatabase_principal_id intint Identificador del contexto de usuario de la base de datos en el que se realiza la acción.ID of the database user context that the action is performed in. No admite valores NULL.Is not nullable. Devuelve 0 si esto no es aplicable.Returns 0 if this does not apply. Por ejemplo, una operación de servidor.For example, a server operation.
database_principal_namedatabase_principal_name sysnamesysname Usuario actual.Current user. Acepta valores NULL.Is nullable. Devuelve NULL si no está disponible.Returns NULL if not available.
duration_millisecondsduration_milliseconds bigintbigint Se aplica a: Azure SQL Database y SQL instancia administradaApplies to: Azure SQL Database and SQL Managed Instance

Duración de la ejecución de la consulta, en milisegundos.Query execution duration in milliseconds
event_timeevent_time datetime2datetime2 Fecha y hora en que se desencadena la acción auditable.Date and time when the auditable action is fired. No admite valores NULL.Is not nullable.
file_namefile_name varchar(260)varchar(260) Ruta de acceso y nombre del archivo de registro de auditoría del que procede el registro.The path and name of the audit log file that the record came from. No admite valores NULL.Is not nullable.
is_column_permissionis_column_permission bitbit Marca que indica si se trata de un permiso de nivel de columna.Flag indicating if this is a column level permission. No admite valores NULL.Is not nullable. Devuelve 0 si permission_bitmask = 0.Returns 0 when the permission_bitmask = 0.
1 = verdadero1 = true
0 = falso0 = false
object_idobject_id intint Identificador de la entidad en la que se produjo la auditoría.The ID of the entity on which the audit occurred. Entre estas estructuras se incluyen las siguientes:This includes the following:
Objetos de servidorServer objects
Bases de datosDatabases
Objetos de base de datosDatabase objects
Objetos de esquemaSchema objects
No admite valores NULL.Is not nullable. Devuelve 0 si la entidad es el propio servidor o si la auditoría no se realiza en un nivel de objeto.Returns 0 if the entity is the Server itself or if the audit is not performed at an object level. Por ejemplo, la autenticación.For example, Authentication.
object_nameobject_name sysnamesysname Nombre de la entidad en la que se produjo la auditoría.The name of the entity on which the audit occurred. Entre estas estructuras se incluyen las siguientes:This includes the following:
Objetos de servidorServer objects
Bases de datosDatabases
Objetos de base de datosDatabase objects
Objetos de esquemaSchema objects
Acepta valores NULL.Is nullable. Devuelve NULL si la entidad es el propio servidor o si la auditoría no se realiza en un nivel de objeto.Returns NULL if the entity is the Server itself or if the audit is not performed at an object level. Por ejemplo, la autenticación.For example, Authentication.
permission_bitmaskpermission_bitmask varbinary(16)varbinary(16) En algunas acciones, este es el permiso que se concedió, denegó o revocó.In some actions, this is the permissions that were grant, denied, or revoked.
response_rowsresponse_rows bigintbigint Se aplica a: Azure SQL Database y SQL instancia administradaApplies to: Azure SQL Database and SQL Managed Instance

Número de filas devueltas en el conjunto de resultados.Number of rows returned in the result set.
schema_nameschema_name sysnamesysname Contexto de esquema en el que se produjo la acción.The schema context in which the action occurred. Acepta valores NULL.Is nullable. Devuelve NULL para las auditorías que se producen fuera de un esquema.Returns NULL for audits occurring outside a schema.
sequence_group_idsequence_group_id varbinaryvarbinary Se aplica a: solo SQL Server (a partir de 2016)Applies to: SQL Server only (starting with 2016)

Identificador únicoUnique identifier
sequence_numbersequence_number intint Realiza un seguimiento de la secuencia de registros de un único registro de auditoría que era demasiado grande para caber en el búfer de escritura destinado a las auditorías.Tracks the sequence of records within a single audit record that was too large to fit in the write buffer for audits. No admite valores NULL.Is not nullable.
server_instance_nameserver_instance_name sysnamesysname Nombre de la instancia de servidor donde se ha producido la auditoría.Name of the server instance where the audit occurred. Se usa el formato servidor\instancia estándar.The standard server\instance format is used.
server_principal_idserver_principal_id intint Identificador del contexto de inicio de sesión en el que se realiza la acción.ID of the login context that the action is performed in. No admite valores NULL.Is not nullable.
server_principal_nameserver_principal_name sysnamesysname Inicio de sesión actual.Current login. Acepta valores NULL.Is nullable.
server_principal_sidserver_principal_sid varbinaryvarbinary SID del inicio de sesión actual.Current login SID. Acepta valores NULL.Is nullable.
session_idsession_id smallintsmallint Identificador de la sesión en la que se produjo el evento.ID of the session on which the event occurred. No admite valores NULL.Is not nullable.
session_server_principal_namesession_server_principal_name sysnamesysname Entidad de seguridad de servidor para la sesión.Server principal for session. Acepta valores NULL.Is nullable.
statementstatement nvarchar(4000)nvarchar(4000) Instrucción TSQL, si existe.TSQL statement if it exists. Acepta valores NULL.Is nullable. Devuelve NULL si no es aplicable.Returns NULL if not applicable.
Correctosucceeded bitbit Indica si la acción que desencadenó el evento se realizó correctamente.Indicates whether the action that triggered the event succeeded. No admite valores NULL.Is not nullable. Para todos los eventos que no sean los eventos de inicio de sesión, esto solo notifica si la comprobación del permiso tuvo o no tuvo éxito, no la operación.For all events other than login events, this only reports whether the permission check succeeded or failed, not the operation.
1 = correcta (success)1 = success
0 = error0 = fail
target_database_principal_idtarget_database_principal_id intint Entidad de seguridad de la base de datos donde se realizó la operación GRANT/DENY/REVOKE.The database principal the GRANT/DENY/REVOKE operation is performed on. No admite valores NULL.Is not nullable. Devuelve 0 si no es aplicable.Returns 0 if not applicable.
target_database_principal_nametarget_database_principal_name sysnamesysname Usuario de destino de la acción.Target user of action. Acepta valores NULL.Is nullable. Devuelve NULL si no es aplicable.Returns NULL if not applicable.
target_server_principal_idtarget_server_principal_id intint Entidad de seguridad del servidor donde se realizó la operación GRANT/DENY/REVOKE.Server principal that the GRANT/DENY/REVOKE operation is performed on. No admite valores NULL.Is not nullable. Devuelve 0 si no es aplicable.Returns 0 if not applicable.
target_server_principal_nametarget_server_principal_name sysnamesysname Inicio de sesión de destino de la acción.Target login of action. Acepta valores NULL.Is nullable. Devuelve NULL si no es aplicable.Returns NULL if not applicable.
target_server_principal_sidtarget_server_principal_sid varbinaryvarbinary Id. de seguridad del inicio de sesión de destino.SID of target login. Acepta valores NULL.Is nullable. Devuelve NULL si no es aplicable.Returns NULL if not applicable.
transaction_idtransaction_id bigintbigint Se aplica a: solo SQL Server (a partir de 2016)Applies to: SQL Server only (starting with 2016)

Identificador único para identificar varios eventos de auditoría en una transacciónUnique identifier to identify multiple audit events in one transaction
user_defined_event_iduser_defined_event_id smallintsmallint Se aplica a: SQL Server 2012 (11.x)SQL Server 2012 (11.x) y versiones posteriores, Azure SQL Database y SQL instancia administradaApplies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later, Azure SQL Database and SQL Managed Instance

Identificador de evento definido por el usuario que se pasa como argumento a sp_audit_write.User defined event id passed as an argument to sp_audit_write. Null para eventos del sistema (predeterminado) y distinto de cero para el evento definido por el usuario.NULL for system events (default) and non-zero for user-defined event. Para obtener más información, vea sp_audit_write ()de Transact-SQL .For more information, see sp_audit_write (Transact-SQL).
user_defined_informationuser_defined_information nvarchar(4000)nvarchar(4000) Se aplica a: SQL Server 2012 (11.x)SQL Server 2012 (11.x) y versiones posteriores, Azure SQL Database y SQL instancia administradaApplies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later, Azure SQL Database and SQL Managed Instance

Se usa para registrar información adicional que el usuario desea grabar en el registro de auditoría mediante el sp_audit_write procedimiento almacenado.Used to record any extra information the user wants to record in audit log by using the sp_audit_write stored procedure.

ObservacionesRemarks

Si el argumento file_pattern pasado a fn_get_audit_file hace referencia a una ruta o un archivo que no existe, o si el archivo no es un archivo de auditoría, se devuelve el mensaje de error MSG_INVALID_AUDIT_FILE .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.

PermisosPermissions

  • SQL Server: requiere el permiso Control Server .SQL Server: Requires the CONTROL SERVER permission.
  • Azure SQL Database: requiere el permiso control Database .Azure SQL Database: Requires the CONTROL DATABASE permission.
    • Los administradores del servidor pueden tener acceso a los registros de auditoría de todas las bases de datos del servidor.Server admins can access audit logs of all databases on the server.
    • Los administradores que no son de servidor solo pueden tener acceso a los registros de auditoría de la base de datos actual.Non server admins can only access audit logs from the current database.
    • Los blobs que no cumplan los criterios anteriores se omitirán (se mostrará una lista de los blobs omitidos en el mensaje de salida de la consulta) y la función devolverá los registros solo de los blobs para los que se permite el acceso.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.

EjemplosExamples

  • SQL ServerSQL Server

    En este ejemplo se lee un archivo denominado \\serverName\Audit\HIPAA_AUDIT.sqlaudit.This example reads from a file that is named \\serverName\Audit\HIPAA_AUDIT.sqlaudit.

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

    En este ejemplo se lee un archivo denominado 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  
    

    Este ejemplo lee del mismo archivo que el anterior, pero con cláusulas de T-SQL adicionales (cláusulaTop, order byy Where para filtrar los registros de auditoría devueltos por la función):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
    

    En este ejemplo se leen todos los registros de auditoría de servidores que comienzan por 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  
    

Para ver un ejemplo completo de cómo crear una auditoría, vea SQL Server Audit (motor de base de datos).For a full example about how to create an audit, see SQL Server Audit (Database Engine).

Para obtener información sobre cómo configurar la auditoría de Azure SQL Database, consulte Introducción a la auditoría de SQL Database.For information on setting up Azure SQL Database auditing, see Get Started with SQL Database auditing.

Consulte tambiénSee Also

CREAR (de auditoría de servidor de 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)
Crear una auditoría de servidor y una especificación de auditoría de servidorCreate a Server Audit and Server Audit Specification