Registros de auditoria do SQL Server

Aplica-se:SQL Server

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

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

Nome da coluna Descrição Tipo Sempre disponível
event_time Data e hora quando a ação auditável é executada. datetime2 Sim
número_de_sequência Rastreia a sequência de registros dentro de um único registro de auditoria, que é grande demais para caber no buffer de gravação das auditorias. int Sim
action_id ID da ação

Dica: para usar action_id como um predicado, ele deve ser convertido de uma cadeia de caracteres para um valor numérico. Para obter mais informações, veja Filter SQL Server Audit on action_id / class_type predicate(Filtrar a Auditoria do SQL Server no predicado action_id / class_type).
varchar(4) Sim
sucesso Indica se a ação que disparou o evento foi bem-sucedida. Para todos os eventos que não sejam eventos de logon, isso informa apenas se a verificação de permissão foi bem-sucedida ou falhou, não a operação.
- 1 = Êxito
- 0 = Falha
bit Sim
permission_bitmask Em algumas ações, essas são as permissões concedidas, negadas ou revogadas. varbinary(16) Não
is_column_permission Sinalizador indicando se essa é uma permissão de nível de coluna. Retorna 0 quando o permission_bitmask = 0.
- 1 = Verdadeiro
- 0 = Falso
bit Não
session_id Identificação da sessão em que ocorreu o evento. smallint Sim
server_principal_id ID do contexto de logon em que a ação é executada. int Sim
database_principal_id ID do contexto do usuário de 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 Principal do servidor na qual a operação GRANT/DENY/REVOKE é executada. Retorna 0 se não for aplicável. int Sim
target_database_principal_id A entidade de banco de dados na qual a operação GRANT/DENY/REVOKE é executada. Retorna 0 se não for aplicável. int Não
object_id A ID da entidade na qual a auditoria ocorreu. Isso inclui:
objetos do servidor
bancos de dados
objetos de banco de dados
objetos de esquema
Retorna 0 se a entidade for o servidor em si 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 na qual a auditoria ocorre. varchar(2) Sim
session_server_principal_name Principal de servidor para a sessão. sysname Sim
server_principal_name Logon atual. sysname Sim
server_principal_sid SID do logon atual. varbinary(85) Sim
database_principal_name Usuário atual. sysname Não
target_server_principal_name Login de destino da ação. Retorna NULL se não aplicável. sysname Não
target_server_principal_sid SID do logon de destino. Retorna NULL se não aplicável. varbinary(85) Não
target_database_principal_name Usuário de destino da ação. Retorna NULL se não aplicável. sysname Não
server_instance_name Nome da instância de servidor no qual a auditoria ocorreu. O formato de servidor-instância padrão é usado. sysname Sim
database_name O contexto do banco de dados no qual a ação aconteceu. Anulável 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 aconteceu. sysname Não
object_name O nome da entidade na qual a auditoria ocorreu. Isso inclui:
objetos do servidor
bancos de dados
objetos de banco de dados
objetos de esquema
Nulificável Retornará NULL se a entidade for o servidor em si 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 T-SQL se ela existir. Retorna NULL se não 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 no 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>
O parâmetro 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 escaparão como _xHHHH\_. O HHHH significa o código hexadecimal UCS-2 de quatro dígitos para o caractere
Nulificável 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) Sim
audit_file_offset Aplica-se apenas a: SQL Server

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

ID de evento definida pelo usuário passada 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
informações_definidas_pelo_usuário Aplica-se a: SQL Server 2012 (11.x) e posterior, Banco de Dados SQL do Azure e Instância Gerenciada de 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 Sim
sequence_group_id Aplica-se apenas a: SQL Server

Identificador exclusivo
varbinary(85) Não
transaction_id Aplica-se apenas a: 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 de SQL

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

Número de linhas retornadas no conjunto de resultados.
bigint Não
affected_rows Aplica-se apenas a: 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 de SQL

ID da conexão no servidor
GUID Não
informação_de_sensibilidade_dos_dados Aplica-se apenas a: Banco de Dados SQL do Azure

Tipos de informações e rótulos de confidencialidade 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
contexto_de_sessão Informações de contexto de 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 do 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 do TLS usado pela conexão do cliente
nvarchar(128) Não
database_transaction_id Identificador de transação de banco de dados bigint Não
número_de_sequência_inicial_do_reasonário Aplica-se a: SQL Server 2022 e posterior

Número de sequência inicial do razão para operações contábeis
bigint Não
permissões_de_política_externa_verificadas Permissões de política externa que foram verificadas durante a operação nvarchar(4000) Não

Comentários

Algumas ações não preenchem o valor de uma coluna porque ela pode não ser aplicaí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 declaração retornados de uma ação auditável têm mais de 4.000 caracteres, a coluna sequence_number é utilizada para gravar vários registros no relatório de auditoria para uma única ação auditável, registrando esses dados. O processo é o seguinte:

  • A coluna de statement é dividida em 4.000 caracteres.

  • O SQL Server grava 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 registrados.

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.