Compartilhar via


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 destinode 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 em que a ação auditável é acionada. datetime2 Sim
sequence_number Rastreia a sequência de registros dentro de um único registro de auditoria que é muito grande para se ajustar 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
succeeded 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 Entidade de 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 Entidade do servidor da 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 Logon 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. Nullable. 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
Nullable. 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
instrução Instrução TSQL 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 nest_level de 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
Nullable. 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 de 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 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
user_defined_information 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
response_rows 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
data_sensitivity_information 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
session_context 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
ledger_start_sequence_number Aplica-se a: SQL Server 2022 e posterior

Número da sequência de início do razão para operações do 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

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 instrução retornados de uma ação auditável retornam mais de 4.000 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ção é 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.