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

SE APLICA A: síSQL Server síAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

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. Un asterisco (*) sirve 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:

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

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

    • <ruta de acceso > \LoginsAudit_{GUID}_00_29384.sqlaudit -recopilar un archivo de auditoría concreta.<path>\LoginsAudit_{GUID}_00_29384.sqlaudit - Collect a specific audit file.

  • Azure SQL Database:Azure SQL Database:

    Este argumento se utiliza para especificar una dirección URL del 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 se admite un carácter comodín asterisco, puede usar un prefijo de nombre de archivo parcial (blob) (en lugar del nombre del blob completo) para recopilar varios archivos (BLOB) que comienzan por 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>/<contenedor>/<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>/<contenedor>/<ServerName>/<DatabaseName> / < AuditName>/<CreationDate>/<FileName>.xel -recopila un archivo de auditoría específicos (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 initial_file_name argumento debe contener entradas válidas o debe contener el 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 audit_record_offset argumento debe contener entradas válidas o debe contener el 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 columnaColumn name TypeType 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 produce el 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: La base de datos de SQL Azure soloApplies to: Azure SQL DB 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 DB + SQL Server (a partir de 2017)Applies to: Azure SQL DB + SQL Server (starting with 2017)

Nombre de aplicación de cliente que ejecuta 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: Sólo servidor SQL ServerAplies 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 es 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 DB + SQL Server (a partir de 2017)Applies to: Azure SQL DB + SQL Server (starting with 2017)

IP de la aplicación cliente de origenSource IP of the client application
connection_idconnection_id GUIDGUID Se aplica a: Instancia administrada y de base de datos SQL AzureApplies to: Azure SQL DB and 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: La base de datos de SQL Azure soloApplies to: Azure SQL DB only

Tipos de información y las etiquetas de confidencialidad devueltas por la consulta auditada, basándose 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 clasificación y detección de datos de Azure SQL DatabaseLearn 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: Instancia administrada y de base de datos SQL AzureApplies to: Azure SQL DB and Managed instance

Duración de la ejecución de consulta en milisegundosQuery execution duration in milliseconds
event_timeevent_time datetime2datetime2 Fecha y hora cuando 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 éste es 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. Incluye lo siguiente: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 El nombre de la entidad en la que se produjo la auditoría.The name of the entity on which the audit occurred. Incluye lo siguiente: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: Instancia administrada y de base de datos SQL AzureApplies to: Azure SQL DB and Managed instance

Número de filas devueltas en el conjunto de resultados.Number of rows returned in the result set.
schema_nameschema_name sysnamesysname El contexto del 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: Sólo servidor 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.
instrucciónstatement 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.
succeededsucceeded bitbit Indica si la acción que desencadenó el evento se ha llevado a cabo 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 = correcto1 = success
0 = error0 = fail
target_database_principal_idtarget_database_principal_id intint Entidad de seguridad de base de datos en la que se realiza 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 de servidor en la que se realiza 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 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 SID 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: Sólo servidor 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) a través de SQL Server 2017SQL Server 2017, instancia administrada y de base de datos de SQL AzureApplies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017, Azure SQL DB and Managed instance

Id. de evento definido por usuario 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 (valor 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, consulte sp_audit_write (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) a través de SQL Server 2017SQL Server 2017, instancia administrada y de base de datos de SQL AzureApplies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017, Azure SQL DB and Managed instance

Permite registrar cualquier 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.

ComentariosRemarks

Si el file_pattern argumento pasado a fn_get_audit_file hace referencia a una ruta de acceso o archivo que no existe, o si el archivo no es un archivo de auditoría, el MSG_INVALID_AUDIT_FILEdevuelve el mensaje de error.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 DB: Requiere el CONTROL DATABASE permiso.Azure SQL DB: Requires the CONTROL DATABASE permission.
    • Los administradores de servidor pueden tener acceso a los registros de auditoría de todas las bases de datos en el servidor.Server admins can access audit logs of all databases on the server.
    • Servidor que no sean administradores solo pueden acceder a los registros de auditoría de la base de datos actual.Non server admins can only access audit logs from the current database.
    • Se omitirán los blobs que no cumplen los criterios anteriores (se mostrará una lista de blobs omitidos en el mensaje de salida de consulta), y la función devolverá los registros solo de blobs para el 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

    Este ejemplo se lee desde 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 se lee desde el mismo archivo que el anterior, pero con cláusulas adicionales de T-SQL (superior, ORDER BY, y donde cláusula para filtrar los registros de auditoría devueltos por el 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 lee todos los registros de los servidores que comienzan con de auditoría 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 acerca de cómo configurar la auditoría de Azure SQL Database, consulte empezar a trabajar con la auditoría de base de datos SQL.For information on setting up Azure SQL Database auditing, see Get Started with SQL Database auditing.

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