Partilhar via


Registros de auditoria do SQL Server

Aplica-se a:Servidor SQL

O recurso Auditoria do SQL Server permite auditar grupos de eventos e eventos no nível do servidor e no nível do banco de dados. Para obter mais informações, consulte Auditoria do SQL Server (Mecanismo de Banco de Dados). SQL Server.

As auditorias consistem em zero ou mais itens de ação de auditoria, que são registrados em uma meta de auditoria. O destino da auditoria pode ser um arquivo binário, o log de eventos do Aplicativo do Windows ou o log de eventos da Segurança do Windows. Os registros enviados ao destino podem conter os elementos descritos na tabela a seguir:

Nome da coluna Description Tipo Sempre disponível
event_time Data e hora em que a ação auditável é acionada. datetime2 Yes
sequence_number Rastreia a sequência de registros em um único registro de auditoria que era muito grande para caber no buffer de gravação para auditorias. Int Yes
action_id ID da ação

Dica: Para usá action_id como predicado, ele deve ser convertido de uma cadeia de caracteres para um valor numérico. Para obter mais informações, consulte Filtrar auditoria do SQL Server em action_id / class_type predicado.
Varchar(4) Yes
bem sucedido Indica se a ação que disparou o evento foi bem-sucedida. Para todos os eventos que não sejam eventos de login, isso informa apenas se a verificação de permissão foi bem-sucedida ou falhou, não a operação.
- 1 = Sucesso
- 0 = Reprovado
bit Yes
permission_bitmask Em algumas ações, essas são as permissões que foram concedidas, negadas ou revogadas. Varbinário(16) Não
is_column_permission Sinalizador que indica se esta é uma permissão de nível de coluna. Retorna 0 quando o permission_bitmask = 0.
- 1 = Verdadeiro
- 0 = Falso
bit Não
session_id ID da sessão em que o evento ocorreu. Smallint Yes
server_principal_id ID do contexto de login no qual a ação é executada. Int Yes
database_principal_id ID do contexto de usuário do banco de dados no qual a ação é executada. Retorna 0 se isso não se aplicar. Por exemplo, uma operação de servidor. Int Não
target_server_principal_id Entidade de servidor na qual a operação GRANT/DENY/REVOKE é executada. Devolve 0 se não for aplicável. Int Yes
target_database_principal_id O principal do banco de dados no qual a operação GRANT/DENY/REVOKE é executada. Devolve 0 se não for aplicável. Int Não
object_id A ID da entidade na qual a auditoria ocorreu. Isto inclui:
Objetos do servidor
bases de dados
objetos de banco de dados
objetos de esquema
Retorna 0 se a entidade for o próprio Servidor ou se a auditoria não for executada em um nível de objeto. Por exemplo, Autenticação.
Int Não
class_type O tipo de entidade auditável em que a auditoria ocorre. Varchar(2) Yes
session_server_principal_name Principal do servidor para a sessão. sysname Yes
server_principal_name Login atual. sysname Yes
server_principal_sid SID de login atual. Varbinário(85) Yes
database_principal_name Usuário atual. sysname Não
target_server_principal_name Login de destino da ação. Retorna NULL se não for aplicável. sysname Não
target_server_principal_sid SID do login de destino. Retorna NULL se não for aplicável. Varbinário(85) Não
target_database_principal_name Usuário alvo da ação. Retorna NULL se não for aplicável. sysname Não
server_instance_name Nome da instância do servidor onde ocorreu a auditoria. O formato server\instance padrão é usado. sysname Yes
database_name O contexto do banco de dados no qual a ação ocorreu. Nulo. Retorna NULL para auditorias que ocorrem no nível do servidor. sysname Não
schema_name O contexto do esquema no qual a ação ocorreu. sysname Não
object_name O nome da entidade na qual a auditoria ocorreu. Isto inclui:
Objetos do servidor
bases de dados
objetos de banco de dados
objetos de esquema
Nulo. Retorna NULL se a entidade for o próprio servidor ou se a auditoria não for executada em um nível de objeto. Por exemplo, Autenticação.
sysname Não
Declaração Instrução TSQL, se existir. Retorna NULL se não for aplicável. Nvarchar(4000) Não
additional_information Informações exclusivas que se aplicam apenas a um único evento são retornadas como XML. Algumas ações auditáveis contêm esse tipo de informação.

Um nível de pilha TSQL será exibido em formato XML para ações que tenham a pilha TSQL associada a elas. O formato XML será:
<tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack>
A nest_level do quadro indica o nível de aninhamento atual do quadro. O nome do módulo é representado em formato de três partes (database_name, schema_name e object_name). O nome do módulo será analisado para escapar de caracteres xml inválidos como '\<', '>', , '/''_x'. Eles serão escapados como _xHHHH\_. O HHHH significa o código UCS-2 hexadecimal de quatro dígitos para o caractere
Nulo. Retorna NULL quando não há informações adicionais relatadas pelo evento.
Nvarchar(4000) Não
file_name O caminho e o nome do arquivo de log de auditoria do qual o registro veio. Varchar(260) Yes
audit_file_offset Aplica-se a: Somente SQL Server

O deslocamento do buffer no arquivo que contém o registro de auditoria.
bigint Não
user_defined_event_id Aplica-se a: SQL Server 2012 (11.x) e posterior, Banco de Dados SQL do Azure e Instância Gerenciada SQL

ID de evento definido pelo usuário passado como um argumento para sp_audit_writeNULL para eventos do sistema (padrão) e diferente de zero para evento definido pelo usuário. Para obter mais informações, consulte sp_audit_write (Transact-SQL).
Smallint Não
user_defined_information Aplica-se a: SQL Server 2012 (11.x) e posterior, Banco de Dados SQL do Azure e Instância Gerenciada SQL

Usado para registrar qualquer informação extra que o usuário deseja registrar no log de auditoria usando o sp_audit_write procedimento armazenado.
Nvarchar(4000) Não
audit_schema_version Sempre 1 Int Yes
sequence_group_id Aplica-se a: Somente SQL Server

Identificador único
Varbinário(85) Não
transaction_id Aplica-se a: Somente SQL Server (a partir de 2016)

Identificador exclusivo para identificar vários eventos de auditoria em uma transação
bigint Não
client_ip Aplica-se a: Banco de Dados SQL do Azure + SQL Server (a partir de 2017)

IP de origem do aplicativo cliente
Nvarchar(128) Não
application_name Aplica-se a: Banco de Dados SQL do Azure + SQL Server (a partir de 2017)

Nome do aplicativo cliente que executou a instrução que causou o evento de auditoria
Nvarchar(128) Não
duration_milliseconds Aplica-se a: Banco de Dados SQL do Azure e Instância Gerenciada SQL

Duração da execução da consulta em milissegundos
bigint Não
response_rows Aplica-se a: Banco de Dados SQL do Azure e Instância Gerenciada SQL

Número de linhas retornadas no conjunto de resultados.
bigint Não
affected_rows Aplica-se a: Somente Banco de Dados SQL do Azure

Número de linhas afetadas pela instrução executada.
bigint Não
connection_id Aplica-se a: Banco de Dados SQL do Azure e Instância Gerenciada SQL

ID da conexão no servidor
GUID Não
data_sensitivity_information Aplica-se a: Somente Banco de Dados SQL do Azure

Tipos de informação e rótulos de sensibilidade retornados pela consulta auditada, com base nas colunas classificadas no banco de dados. Saiba mais sobre a descoberta e classificação de dados do Banco de Dados SQL do Azure
Nvarchar(4000) Não
host_name Nome do host da conexão do cliente Nvarchar(128) Não
session_context Informações de contexto da sessão para a conexão Nvarchar(4000) Não
client_tls_version Aplica-se a: SQL Server 2022 e posterior

Número de versão TLS usado pela conexão do cliente
Int Não
client_tls_version_name Aplica-se a: SQL Server 2022 e posterior

Nome da versão TLS usado pela conexão do cliente
Nvarchar(128) Não
database_transaction_id Identificador de transação do banco de dados bigint Não
ledger_start_sequence_number Aplica-se a: SQL Server 2022 e posterior

Número de sequência inicial do livro-razão para operações do livro-razão
bigint Não
external_policy_permissions_checked Permissões de política externa que foram verificadas durante a operação Nvarchar(4000) Não

Observações

Algumas ações não preenchem o valor de uma coluna porque ele pode não ser aplicável à ação.

A Auditoria do SQL Server armazena 4.000 caracteres de dados para campos de caracteres em um registro de auditoria. Quando os valores de additional_information e instrução retornados de uma ação auditável retornam mais de 4000 caracteres, a coluna sequence_number é usada para gravar vários registros no relatório de auditoria para uma única ação de auditoria para registrar esses dados. O processo é o seguinte:

  • A coluna de instruções é dividida em 4.000 caracteres.

  • A Auditoria do SQL Server grava como a primeira linha do registro de auditoria com os dados parciais. Todos os outros campos são duplicados em cada linha.

  • O valor sequence_number é incrementado.

  • Este processo é repetido até que todos os dados sejam registados.

Você pode conectar os dados lendo as linhas sequencialmente usando o valor sequence_number e as colunas event_Time, action_id e session_id para identificar a ação.