Compartir a través de


Registros de SQL Server Audit

Se aplica a:SQL Server

La característica SQL Server Audit permite auditar grupos de eventos y eventos de nivel de servidor y de base de datos. Para más información, consulte SQL Server Audit (motor de base de datos). SQL Server.

Las auditorías constan de cero o más elementos de acción de auditoría que se registran en un destinode auditoría. Este destino de auditoría puede ser un archivo binario, el registro de eventos de aplicación Windows o el registro de eventos de seguridad de Windows. Los registros que se envían al destino pueden contener los elementos descritos en la tabla siguiente:

Nombre de la columna Descripción Tipo Siempre está disponible
event_time Fecha y hora en que se desencadena la acción auditable. datetime2
sequence_number 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. int
action_id Identificador de la acción.

Sugerencia: Para usar action_id como un predicado, debe convertirse de una cadena de caracteres a un valor numérico. Para obtener más información, vea Filtrar SQL Server Audit por el predicado action_id / class_type.
varchar(4)
succeeded Indica si la acción que desencadenó el evento se realizó correctamente. Para todos los eventos que no sean eventos de inicio de sesión, esto solo notifica si la comprobación de permisos se realizó correctamente o no, no la operación.
- 1 = Correcto
- 0 = Error
bit
permission_bitmask En algunas acciones, se trata de los permisos concedidos, denegados o revocados. varbinary(16) No
is_column_permission Marca que indica si se trata de un permiso de nivel de columna. Devuelve 0 cuando el permission_bitmask = 0.
- 1 = Verdadero
- 0 = Falso
bit No
session_id Identificador de la sesión en la que se produjo el evento. smallint
server_principal_id Identificador del contexto de inicio de sesión en el que se realiza la acción. int
database_principal_id Identificador del contexto de usuario de la base de datos en el que se realiza la acción. Devuelve 0 si no se aplica. Por ejemplo, una operación de servidor. int No
target_server_principal_id Entidad de seguridad del servidor en la que se realiza la operación GRANT/DENY/REVOKE. Devuelve 0 si no es aplicable. int
target_database_principal_id La entidad de seguridad de base de datos en la que se realiza la operación GRANT/DENY/REVOKE. Devuelve 0 si no es aplicable. int No
object_id Identificador de la entidad en la que se produjo la auditoría. Esto incluye:
objetos de servidor
databases
Objetos de base de datos
objetos de esquema
Devuelve 0 si la entidad es el propio servidor o si la auditoría no se realiza en un nivel de objeto. Por ejemplo, Autenticación.
int No
class_type Tipo de entidad auditable en la que se produce la auditoría. varchar(2)
session_server_principal_name Entidad de seguridad del servidor para la sesión. sysname
server_principal_name Inicio de sesión actual. sysname
server_principal_sid SID del inicio de sesión actual. varbinary(85)
database_principal_name Usuario actual. sysname No
target_server_principal_name Inicio de sesión de destino de la acción. Devuelve NULL si no es aplicable. sysname No
target_server_principal_sid SID del inicio de sesión de destino. Devuelve NULL si no es aplicable. varbinary(85) No
target_database_principal_name Usuario de destino de la acción. Devuelve NULL si no es aplicable. sysname No
server_instance_name Nombre de la instancia de servidor donde se ha producido la auditoría. Se usa el formato de servidor\instancia estándar. sysname
database_name Contexto de base de datos en el que se produjo la acción. Nullable. Devuelve NULL para las auditorías que se producen en el nivel de servidor. sysname No
schema_name Contexto de esquema en el que se produjo la acción. sysname No
object_name Nombre de la entidad en la que se produjo la auditoría. Esto incluye:
objetos de servidor
databases
Objetos de base de datos
objetos de esquema
Nullable. Devuelve NULL si la entidad es el propio servidor o si la auditoría no se realiza en un nivel de objeto. Por ejemplo, Autenticación.
sysname No
instrucción Instrucción TSQL si existe. Devuelve NULL si no es aplicable. nvarchar(4000) No
additional_information La información única que solo se aplica a un único evento se devuelve como XML. Algunas acciones auditables contienen este tipo de información.

Un nivel de pila de TSQL se mostrará en formato XML para las acciones que tienen la pila de TSQL asociada a ellas. El formato XML será:
<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_name y object_name). El nombre del módulo se analizará para escapar caracteres xml no válidos como '\<', '>', '/', . '_x' Se escaparán como _xHHHH\_. HHHH representa el código UCS-2 hexadecimal de cuatro dígitos para el carácter.
Nullable. Devuelve NULL cuando no hay información adicional notificada por el evento.
nvarchar(4000) No
file_name Ruta de acceso y nombre del archivo de registro de auditoría del que procede el registro. varchar(260)
audit_file_offset Se aplica a: solo SQL Server

Desplazamiento del búfer en el archivo que contiene el registro de auditoría.
bigint No
user_defined_event_id Se aplica a: SQL Server 2012 (11.x) y versiones posteriores, Azure SQL Database e Instancia administrada de SQL

Identificador de evento definido por el usuario que se pasa como argumento a sp_audit_writeNULL para los eventos del sistema (valor predeterminado) y distinto de cero para el evento definido por el usuario. Para obtener más información, vea sp_audit_write (Transact-SQL).
smallint No
user_defined_information Se aplica a: SQL Server 2012 (11.x) y versiones posteriores, Azure SQL Database e Instancia administrada de SQL

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.
nvarchar(4000) No
audit_schema_version Siempre 1 int
sequence_group_id Se aplica a: solo SQL Server

Identificador único
varbinary(85) No
transaction_id Se aplica a: solo SQL Server (a partir de 2016)

Identificador único para identificar varios eventos de auditoría en una transacción
bigint No
client_ip Se aplica a: Azure SQL Database + SQL Server (a partir de 2017)

Dirección IP de origen de la aplicación cliente
nvarchar(128) No
application_name Se aplica a: Azure SQL Database + SQL Server (a partir de 2017)

Nombre de la aplicación cliente que ejecutó la instrucción que provocó el evento de auditoría
nvarchar(128) No
duration_milliseconds Se aplica a: Azure SQL Database e Instancia administrada de SQL

Duración de la ejecución de consultas en milisegundos
bigint No
response_rows Se aplica a: Azure SQL Database e Instancia administrada de SQL

Número de filas devueltas en el conjunto de resultados.
bigint No
affected_rows Se aplica a: Solo Azure SQL Database

Número de filas afectadas por la instrucción ejecutada.
bigint No
connection_id Se aplica a: Azure SQL Database e Instancia administrada de SQL

Identificador de la conexión en el servidor
GUID No
data_sensitivity_information Se aplica a: Solo Azure SQL Database

Tipos de información y etiquetas de confidencialidad devueltos por la consulta auditada, en función de las columnas clasificadas de la base de datos. Más información sobre la detección y clasificación de datos de Azure SQL Database
nvarchar(4000) No
host_name Nombre de host de la conexión de cliente nvarchar(128) No
session_context Información de contexto de sesión para la conexión nvarchar(4000) No
client_tls_version Se aplica a: SQL Server 2022 y versiones posteriores

Número de versión de TLS usado por la conexión de cliente
int No
client_tls_version_name Se aplica a: SQL Server 2022 y versiones posteriores

Nombre de versión de TLS usado por la conexión de cliente
nvarchar(128) No
database_transaction_id Identificador de transacción de base de datos bigint No
ledger_start_sequence_number Se aplica a: SQL Server 2022 y versiones posteriores

Número de secuencia de inicio del libro de contabilidad para las operaciones del libro de contabilidad
bigint No
external_policy_permissions_checked Permisos de directiva externa que se comprobaron durante la operación nvarchar(4000) No

Comentarios

Algunas acciones no rellenan el valor de una columna porque es posible que no se pueda aplicar a la acción.

SQL Server Audit almacena 4000 caracteres de datos para campos de caracteres en un registro de auditoría. Cuando los valores de additional_information y instrucción devueltos de una acción auditable devuelven más de 4000 caracteres, la columna sequence_number se usa para escribir varios registros en el informe de auditoría para una sola acción de auditoría para registrar estos datos. El proceso es el siguiente:

  • La columna de instrucción se divide en 4000 caracteres.

  • SQL Server Audit escribe como la primera fila del registro de auditoría con los datos parciales. Los demás campos se duplican en cada fila.

  • El valor sequence_number se incrementa.

  • Este proceso se repite hasta que se registran todos los datos.

Puede conectar los datos leyendo las filas secuencialmente mediante el valor de sequence_number y las columnas event_Time, action_id y session_id para identificar la acción.