Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Aplica a:Azure SQL Database
Almacén en Microsoft Fabric
Base de datos SQL en Microsoft Fabric
La sys.fn_get_audit_file_v2 función del sistema está diseñada para recuperar datos de registros de auditoría con mayor eficiencia en comparación con su predecesora, sys.fn_get_audit_file. La función presenta el filtrado basado en el tiempo en los niveles de archivo y registro, lo que proporciona mejoras de rendimiento significativas, especialmente para las consultas destinadas a intervalos de tiempo específicos.
Información de devolución de un archivo de auditoría creado por una auditoría de servidor. Para más información, consulte SQL Server Audit (motor de base de datos).
- 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.
- Para información sobre cómo configurar auditorías de Fabric Data Warehouse, consulte Registros de auditoría SQL en Fabric Data Warehouse.
- Para información sobre cómo configurar una base de datos SQL en auditoría de Fabric, consulta Auditoría SQL en la base de datos SQL en Fabric.
Convenciones de sintaxis de Transact-SQL
Sintaxis
fn_get_audit_file_v2 ( file_pattern
, { default | initial_file_name | NULL }
, { default | audit_record_offset | NULL }
, { default | start time | NULL }
, { default | end time | NULL } )
Argumentos
file_pattern
Se aplica a: Solo Azure SQL Database
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. file_pattern es nvarchar(260).
Pasar una ruta de acceso sin un patrón de nombre de archivo genera un error.
Este argumento se usa para especificar una dirección URL de blob (incluido el punto de conexión de almacenamiento y el contenedor). Aunque no admite un comodín asterisco, puede usar un prefijo de nombre de archivo parcial (blob) (en lugar del nombre de blob completo) para recopilar varios archivos (blobs) que comiencen por este prefijo. Por ejemplo:
<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/: recopila todos los archivos de auditoría (blobs) de la base de datos específica.<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/<AuditName>/<CreationDate>/<FileName>.xel: recopila un archivo de auditoría específico (blob).
initial_file_name
Se aplica a: Solo Azure SQL Database
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. initial_file_name es nvarchar(260).
El argumento initial_file_name debe contener entradas válidas o debe contener el default valor o NULL .
audit_record_offset
Se aplica a: Solo Azure SQL Database
Especifica una ubicación conocida con el archivo especificado para el initial_file_name. Cuando se usa este argumento, la función comienza a leer en el primer registro del búfer inmediatamente después del desplazamiento especificado.
El argumento audit_record_offset debe contener entradas válidas o debe contener el default valor o NULL .
audit_record_offset es bigint.
start_time
Hora de inicio para filtrar los registros. Los registros antes de esta hora se excluyen.
end_time
Hora de finalización para filtrar los registros. Los registros después de este tiempo se excluyen.
Tabla devuelta
En la tabla siguiente se describe el contenido del archivo de auditoría devuelto por esta función.
| Nombre de la columna | Tipo | Descripción |
|---|---|---|
event_time |
datetime2 | Fecha y hora en que se desencadena la acción auditable. No acepta valores NULL. |
sequence_number |
int | 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. No acepta valores NULL. |
action_id |
varchar(4) | Id. de la acción. No acepta valores NULL. |
succeeded |
bit | Indica si la acción que desencadenó el evento se realizó correctamente. No acepta valores NULL. 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.1 = correcto0 = error |
permission_bitmask |
varbinary(16) | En algunas acciones, esta máscara de bits es los permisos concedidos, denegados o revocados. |
is_column_permission |
bit | Marca que indica si se trata de un permiso de nivel de columna. No acepta valores NULL. Devuelve 0 cuando .permission_bitmask = 01 = verdadero0 = falso |
session_id |
smallint | Identificador de la sesión en la que se produjo el evento. No acepta valores NULL. |
server_principal_id |
int | Identificador del contexto de inicio de sesión en el que se realiza la acción. No acepta valores NULL. |
database_principal_id |
int | Identificador del contexto de usuario de la base de datos en el que se realiza la acción. No acepta valores NULL. Devuelve 0 si esto no se aplica. Por ejemplo, una operación de servidor. |
target_server_principal_id |
int | Entidad de seguridad del servidor en la que se realiza la GRANT/DENY/REVOKE operación. No acepta valores NULL. Devuelve 0 si no es aplicable. |
target_database_principal_id |
int | La entidad de seguridad de base de datos en la que se realiza la GRANT/DENY/REVOKE operación. No acepta valores NULL. Devuelve 0 si no es aplicable. |
object_id |
int | Identificador de la entidad en la que se produjo la auditoría, que incluye los siguientes objetos: - Objetos de servidor -Bases - Objetos de base de datos - Objetos de esquema No acepta valores NULL. Devuelve 0 si la entidad es el propio servidor o si la auditoría no se realiza en un nivel de objeto. Por ejemplo, la autenticación. |
class_type |
varchar(2) | El tipo de entidad auditable en la que se produce la auditoría. No acepta valores NULL. |
session_server_principal_name |
sysname | Entidad de seguridad de servidor para la sesión. Acepta valores NULL. Devuelve la identidad del inicio de sesión original que se conectó a la instancia del Motor de base de datos en caso de que hubiera modificadores de contexto explícitos o implícitos. |
server_principal_name |
sysname | Inicio de sesión actual. Acepta valores NULL. |
server_principal_sid |
varbinary | SID del inicio de sesión actual. Acepta valores NULL. |
database_principal_name |
sysname | Usuario actual. Acepta valores NULL. Devuelve NULL si no está disponible. |
target_server_principal_name |
sysname | Inicio de sesión de destino de la acción. Acepta valores NULL. Devuelve NULL si no es aplicable. |
target_server_principal_sid |
varbinary | Id. de seguridad del inicio de sesión de destino. Acepta valores NULL. Devuelve NULL si no es aplicable. |
target_database_principal_name |
sysname | Usuario de destino de la acción. Acepta valores NULL. Devuelve NULL si no es aplicable. |
server_instance_name |
sysname | Nombre de la instancia de servidor donde se ha producido la auditoría. Se usa el formato estándar server\instance . |
database_name |
sysname | Contexto de base de datos en el que se produjo la acción. Acepta valores NULL. Devuelve NULL para las auditorías que se producen en el nivel de servidor. |
schema_name |
sysname | Contexto de esquema en el que se produjo la acción. Acepta valores NULL. Devuelve NULL para las auditorías que se producen fuera de un esquema. |
object_name |
sysname | Nombre de la entidad en la que se produjo la auditoría, que incluye los siguientes objetos: - Objetos de servidor -Bases - Objetos de base de datos - Objetos de esquema Acepta valores NULL. Devuelve NULL si la entidad es el propio servidor o si la auditoría no se realiza en un nivel de objeto. Por ejemplo, la autenticación. |
statement |
nvarchar(4000) | Instrucción Transact-SQL si existe. Acepta valores NULL. Devuelve NULL si no es aplicable. |
additional_information |
nvarchar(4000) | La información única que se aplica exclusivamente a un evento se devuelve como XML. Algunas acciones auditables contienen este tipo de información. Un nivel de pila de T-SQL se muestra en formato XML para las acciones que tienen una pila de T-SQL asociada a ellas. El formato XML es: <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. El nombre del módulo se representa en tres partes (database_name, schema_namey object_name). El nombre del módulo se analiza para escapar caracteres XML no válidos, como <, >, /, _x. Se escapan como _xHHHH_.
HHHH representa el código UCS-2 hexadecimal de cuatro dígitos para el carácter. Acepta valores NULL. Devuelve NULL cuando no hay información adicional notificada por el evento. |
file_name |
varchar(260) | Ruta de acceso y nombre del archivo de registro de auditoría del que procede el registro. No acepta valores NULL. |
audit_file_offset |
bigint | Desplazamiento de búfer del archivo que contiene el registro de auditoría. No acepta valores NULL. |
user_defined_event_id |
smallint | Identificador de evento definido por el usuario pasado como argumento a sp_audit_write.
NULL para eventos del sistema (valor predeterminado) y distinto de cero para eventos definidos por el usuario. Para obtener más información, consulte sp_audit_write (Transact-SQL). |
user_defined_information |
nvarchar(4000) | Se usa para registrar cualquier información adicional que el usuario quiera registrar en el registro de auditoría mediante el sp_audit_write procedimiento almacenado. |
audit_schema_version |
int | Siempre 1. |
sequence_group_id |
varbinary | Identificador único.< |
transaction_id |
bigint | Identificador único para identificar varios eventos de auditoría en una transacción. |
client_ip |
nvarchar(128) | Dirección IP de origen de la aplicación cliente. |
application_name |
nvarchar(128) | Nombre de la aplicación cliente que ejecutó la instrucción que provocó el evento de auditoría. |
duration_milliseconds |
bigint | Duración de la ejecución de consultas en milisegundos. |
response_rows |
bigint | Número de filas devueltas en el conjunto de resultados.< |
affected_rows |
bigint | Número de filas afectadas por la instrucción ejecutada. |
connection_id |
uniqueidentifier | Identificador de la conexión en el servidor. |
data_sensitivity_information |
nvarchar(4000) | Tipos de información y etiquetas de confidencialidad devueltas por la consulta auditada, basados en las columnas clasificadas en la base de datos. Obtenga más información sobre la detección y clasificación de datos de Azure SQL Database. |
host_name |
nvarchar(128) | Nombre de host de la máquina cliente. |
session_context |
nvarchar(4000) | Pares clave-valor que forman parte del contexto de sesión actual. |
client_tls_version |
bigint | Versión mínima de TLS compatible con el cliente. |
client_tls_version_name |
nvarchar(128) | Versión mínima de TLS compatible con el cliente. |
database_transaction_id |
bigint | Identificador de transacción de la transacción actual en la sesión actual. |
ledger_start_sequence_number |
bigint | Número de secuencia de una operación dentro de una transacción que creó una versión de fila. |
external_policy_permissions_checked |
nvarchar(4000) | Se evalúa la información relacionada con la comprobación de permisos de autorización externa, cuando se genera un evento de auditoría y se evalúan las directivas de autorización externa de Purview. |
obo_middle_tier_app_id |
varchar(120) | El ID de la aplicación de nivel intermedio que se conecta usando acceso en nombre de (OBO). Acepta valores NULL. Devuelve NULL si la solicitud no se realiza mediante el acceso de OBO. |
is_local_secondary_replica |
bit |
True si el registro de auditoría se origina en una réplica secundaria local de solo lectura; de lo contrario, False . |
Mejoras en sys.fn_get_audit_file
La sys.fn_get_audit_file_v2 función ofrece una mejora sustancial sobre la sys.fn_get_audit_file anterior mediante la introducción de un filtrado basado en tiempo eficaz en los niveles de archivo y registro. Esta optimización es especialmente beneficiosa para las consultas destinadas a intervalos de tiempo más pequeños y puede ayudar a mantener el rendimiento en entornos de varias bases de datos.
Filtrado de doble nivel
Filtrado de nivel de archivo: la función filtra primero los archivos en función del intervalo de tiempo especificado, lo que reduce el número de archivos que se deben examinar.
Filtrado de nivel de registro: a continuación, aplica el filtrado dentro de los archivos seleccionados para extraer solo los registros pertinentes.
Mejoras de rendimiento
Las mejoras de rendimiento dependen principalmente del tiempo de sustitución de los archivos de blobs y del intervalo de tiempo consultado. Suponiendo una distribución uniforme de registros de auditoría:
Carga reducida: al minimizar el número de archivos y registros que se van a examinar, reduce la carga en el sistema y mejora los tiempos de respuesta de las consultas.
Escalabilidad: ayuda a mantener el rendimiento incluso a medida que aumenta el número de bases de datos, aunque la mejora neta podría ser menos pronunciada en entornos con un gran número de bases de datos.
Comentarios
Si el argumento file_pattern pasado a hace referencia a fn_get_audit_file_v2 una ruta de acceso o archivo que no existe, o si el archivo no es un archivo de auditoría, se devuelve el MSG_INVALID_AUDIT_FILE mensaje de error.
La fn_get_audit_file_v2 función no puede usarse cuando se crea la auditoría con las APPLICATION_LOGopciones, SECURITY_LOG, o EXTERNAL_MONITOR .
Actualmente, en Fabric Data Warehouse, no puedes acceder a archivos individuales, solo a la carpeta de auditoría. Los siguientes argumentos no están soportados para la auditoría SQL en un elemento de almacén: file_pattern, initial_file_name, audit_record_offset.
Permisos
Permisos necesarios en Azure SQL Database
Requiere el permiso CONTROL DATABASE.
Los administradores del servidor pueden acceder a los registros de auditoría de todas las bases de datos del servidor.
Los administradores que no son de servidor solo pueden acceder a los registros de auditoría desde la base de datos actual.
Los blobs que no cumplen los criterios anteriores se omiten (se muestra una lista de blobs omitidos en el mensaje de salida de la consulta). La función devuelve registros solo de blobs para los que se permite el acceso.
Permisos requeridos en la base de datos SQL de Fabric
Para gestionar la auditoría usando roles de espacio de trabajo de Fabric, los usuarios deben pertenecer al rol de Colaborador de Fabric o permisos superiores. Para administrar la auditoría con permisos de SQL:
- Para configurar la auditoría de base de datos, los usuarios deben tener el permiso ALTER ANY DATABASE AUDIT.
- Para ver los registros de auditoría mediante T-SQL, los usuarios deben tener el permiso VIEW DATABASE SECURITY AUDIT.
Para más información, véase Auditoría en la base de datos SQL de Fabric.
Permisos requeridos en Fabric Data Warehouse
Los usuarios deben tener el permiso de elemento Audit Fabric. Para más información, consulte Permisos.
Ejemplos
A. Ver logs de auditoría SQL para Azure SQL Database
En este ejemplo se recuperan los registros de auditoría de una ubicación específica de Azure Blob Storage, el filtrado de registros entre 2023-11-17T08:40:40Z y 2023-11-17T09:10:40Z.
SELECT *
FROM sys.fn_get_audit_file_v2(
'https://<storage_account>.blob.core.windows.net/sqldbauditlogs/server_name/database_name/SqlDbAuditing_ServerAudit/',
DEFAULT,
DEFAULT,
'2023-11-17T08:40:40Z',
'2023-11-17T09:10:40Z')
B. Ver registros de auditoría SQL para Fabric Data Warehouse
Este ejemplo recupera registros de auditoría de la carpeta OneLake alineada con el espacio de trabajo y almacén actuales, filtrando registros entre 2023-11-17T08:40:40Z y 2023-11-17T09:10:40Z.
En el portal Tela, recupera tu workspaceID y warehouseID:
-
<workspaceID>: Visita tu espacio de trabajo en el portal de Tela. Encuentra el GUID del espacio de trabajo en la URL posterior a la/groups/sección, o ejecutándoloSELECT @@SERVERNAMEen un almacén existente. Si tu/groups/URL va seguida de/me/, estás usando el espacio de trabajo predeterminado, y actualmente SQL Audit para Fabric Data Warehouse no está compatible con el espacio de trabajo predeterminado. -
<warehouseID>: Visita tu almacén en el portal de Tela. Busca el ID del almacén en la URL después de la/warehouses/sección.
SELECT *
FROM sys. fn_get_audit_file_v2(
'https://onelake.blob.fabric.microsoft.com/{workspaceId}/{warehouseId}/Audit/sqldbauditlogs/',
DEFAULT,
DEFAULT,
'2023-11-17T08:40:40Z',
'2023-11-17T09:10:40Z')
C. Consulta los registros de auditoría SQL para bases de datos SQL en Microsoft Fabric
Este ejemplo recupera registros de auditoría de OneLake en Microsoft Fabric, entre 2025-11-17T08:40:40Z y 2025-11-17T09:10:40Z.
En el siguiente script, debes proporcionar tu ID de espacio de trabajo de Microsoft Fabric y ID de base de datos. Ambos se pueden encontrar en la URL del portal Fabric. Por ejemplo: https://fabric.microsoft.com/groups/<fabric workspace id>/sqldatabases/<fabric sql database id>. La primera cadena de identificadores únicos en la URL es el ID del espacio de trabajo de Fabric, y la segunda cadena de identificador único es el ID de la base de datos SQL.
- Reemplace por
<fabric_workspace_id>el identificador del área de trabajo de Fabric. Puede encontrar fácilmente el identificador de un área de trabajo en la dirección URL, es la cadena única dentro de dos/caracteres después/groups/en la ventana del explorador. - Reemplace
<fabric sql database id>con la base de datos SQL en el identificador de base de datos de Fabric. Puede encontrar fácilmente el identificador del elemento de la base de datos en la dirección URL, es la cadena única entre dos caracteres/después de/sqldatabases/en la ventana del navegador.
SELECT *
FROM sys.fn_get_audit_file_v2(
'https://onelake.blob.fabric.microsoft.com/<fabric workspace id>/<fabric sql database id>/Audit/sqldbauditlogs/',
DEFAULT,
DEFAULT,
'2025-11-17T08:40:40Z',
'2025-11-17T09:10:40Z')
Más información
Vistas de catálogo del sistema:
- especificaciones_de_auditoría_del_servidor_sys (Transact-SQL)
- sys.server_audit_specification_details (Transact-SQL)
- sys.especificaciones_de_auditoría_de_base_de_datos (Transact-SQL)
- sys.database_audit_specification_details (Transact-SQL, lenguaje específico de SQL)
Transact-SQL:
- CREATE SERVER AUDIT (Transact-SQL) (Crear auditoría de servidor en Transact-SQL)
- ALTER SERVER AUDIT (Transact-SQL)
- ELIMINAR AUDITORÍA DEL SERVIDOR (Transact-SQL)
- CREAR ESPECIFICACIÓN DE AUDITORÍA DEL SERVIDOR (Transact-SQL)
- ESPECIFICACIÓN DE AUDITORÍA DE SERVIDORES ALTER (Transact-SQL)
- ESPECIFICACIÓN DE AUDITORÍA DEL SERVIDOR DE DROP (Transact-SQL)
- Crear especificación de auditoría de base de datos (Transact-SQL)
- MODIFICAR LA ESPECIFICACIÓN DE AUDITORÍA DE LA BASE DE DATOS (Transact-SQL)
- ELIMINAR ESPECIFICACIÓN DE AUDITORÍA DE BASE DE DATOS (Transact-SQL)
- ALTERAR AUTORIZACIÓN (Transact-SQL)
Contenido relacionado
- Crear una auditoría de servidor y una especificación de auditoría de servidor
- sys.dm_server_audit_status (Transact-SQL)
- sys.dm_audit_actions (Transact-SQL)
- sys.dm_audit_class_type_map (Transact-SQL)
- sys.server_audits (Transact-SQL)
- sys.server_file_audits (Transact-SQL)
- Empieza con la auditoría de bases de datos SQL
- Registros de auditoría SQL en Fabric Data Warehouse