Partilhar via


sys.fn_get_audit_file (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics

Retorna informações de um arquivo de auditoria criado por uma auditoria de servidor no SQL Server. Para obter mais informações, confira Auditoria do SQL Server (Mecanismo de Banco de Dados).

Observação

Para o Banco de Dados SQL do Azure, considere usar sys.fn_get_audit_file_v2 em vez disso. sys.fn_get_audit_file_v2 Introduz a filtragem baseada em tempo nos níveis de arquivo e registro, fornecendo melhorias significativas de desempenho, especialmente para consultas direcionadas a intervalos de tempo específicos.

Convenções de sintaxe de Transact-SQL

Sintaxe

fn_get_audit_file ( file_pattern ,
    { default | initial_file_name | NULL } ,
    { default | audit_record_offset | NULL } )

Argumentos

file_pattern

Especifica o diretório ou caminho e o nome de arquivo do conjunto de arquivos de auditoria que será lido. O tipo é nvarchar(260).

Passar um caminho sem um padrão de nome de arquivo gera um erro.

Esse argumento deve incluir um caminho (letra de unidade ou compartilhamento de rede) e um nome de arquivo, podendo conter um caractere curinga. Um único asterisco (*) pode ser usado para coletar vários arquivos de um conjunto de arquivos de auditoria. Por exemplo:

  • \<path>\* - Colete todos os arquivos de auditoria no local especificado.

  • <path>\LoginsAudit_{GUID}* - Colete todos os arquivos de auditoria que têm o nome e o par GUID especificados.

  • <path>\LoginsAudit_{GUID}_00_29384.sqlaudit - Colete um arquivo de auditoria específico.

initial_file_name

Especifica o caminho e o nome de um arquivo especificado no conjunto de arquivos de auditoria a partir do qual iniciar a leitura dos registros de auditoria. O tipo é nvarchar(260).

O argumento initial_file_name deve conter entradas válidas ou deve conter o default valor or NULL .

audit_record_offset

Especifica um local conhecido com o arquivo especificado para o initial_file_name. Quando esse argumento é usado, a função começa a ler no primeiro registro do buffer imediatamente após o deslocamento especificado.

O argumento audit_record_offset deve conter entradas válidas ou deve conter o default valor or NULL . O tipo é bigint.

Tabelas devolvidas

A tabela a seguir descreve o conteúdo do arquivo de auditoria que pode ser retornado por essa função.

Nome da coluna Type Descrição
event_time datetime2 Data e hora em que a ação auditável é acionada. Não permite valor nulo.
sequence_number int 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. Não permite valor nulo.
action_id varchar(4) A identificação da ação. Não permite valor nulo.
succeeded bit Indica se a ação que disparou o evento foi realizada com êxito. Não permite valor nulo. Para todos os demais eventos que não são eventos de logon, reporta somente se a verificação de permissões foi bem-sucedida ou não, e não a operação.

1 = sucesso
0 = falha
permission_bitmask varbinary(16) Em algumas ações, essa máscara de bits são as permissões que foram concedidas, negadas ou revogadas.
is_column_permission bit Sinalizador que indica se esta é uma permissão no nível de coluna. Não permite valor nulo. Retorna 0 quando o = permission_bitmask0 .

1 = true
0 = falso
session_id smallint Identificação da sessão em que ocorreu o evento. Não permite valor nulo.
server_principal_id int ID do contexto de logon em que a ação é executada. Não permite valor nulo.
database_principal_id int ID do contexto do usuário de banco de dados no qual a ação é executada. Não permite valor nulo. Devoluções 0 se isso não se aplicar. Por exemplo, uma operação de servidor.
target_server_principal_id int Entidade de servidor na qual a GRANT//DENYREVOKE operação é executada. Não permite valor nulo. Devoluções 0 se não aplicável.
target_database_principal_id int A entidade de banco de dados na qual a GRANT//DENYREVOKE operação é executada. Não permite valor nulo. Devoluções 0 se não aplicável.
object_id int A ID da entidade na qual a auditoria ocorreu, que inclui os seguintes objetos:

- Objetos de servidor
-Bancos
- Objetos de banco de dados
- Objetos de esquema

Não permite valor nulo. 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.
class_type varchar(2) O tipo de entidade auditável no qual a auditoria ocorre. Não permite valor nulo.
session_server_principal_name sysname Entidade de servidor para sessão. Anulável. Retorna a identidade do logon original que foi conectado à instância do Mecanismo de Banco de Dados caso haja alternâncias de contexto explícitas ou implícitas.
server_principal_name sysname Logon atual. Anulável.
server_principal_sid varbinary SID (identificador de segurança) de login atual. Anulável.
database_principal_name sysname Usuário atual. Anulável. Devoluções NULL se não estiverem disponíveis.
target_server_principal_name sysname Logon de destino da ação. Anulável. Devoluções NULL se não aplicável.
target_server_principal_sid varbinary SID do logon de destino. Anulável. Devoluções NULL se não aplicável.
target_database_principal_name sysname Usuário de destino da ação. Anulável. Devoluções NULL se não aplicável.
server_instance_name sysname Nome da instância de servidor no qual a auditoria ocorreu. O formato padrão server\instance é usado.
database_name sysname 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.
schema_name sysname O contexto do esquema no qual a ação aconteceu. Anulável. Retorna NULL para auditorias que ocorrem fora de um esquema.
object_name sysname O nome da entidade na qual a auditoria ocorreu, que inclui os seguintes objetos:

- Objetos de servidor
-Bancos
- Objetos de banco de dados
- Objetos de esquema

Anulável. 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.
statement nvarchar(4000) Transact-SQL, se existir. Anulável. Devoluções NULL se não aplicável.
additional_information nvarchar(4000) Informações exclusivas que se aplicam somente a um evento são retornadas como XML. Algumas ações auditáveis contêm esse tipo de informação.

Um nível de pilha T-SQL é exibido no formato XML para ações que têm a pilha T-SQL associada a elas. O formato XML é: <tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack>

frame nest_level 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 é analisado para escapar caracteres XML inválidos como <, >, /, _x. Eles escaparam como _xHHHH_. O HHHH significa o código UCS-2 hexadecimal de quatro dígitos para o caractere. Anulável. Retorna NULL quando não há informações adicionais relatadas pelo evento.
file_name varchar(260) O caminho e nome do arquivo de log de auditoria que deu origem ao registro. Não permite valor nulo.
audit_file_offset bigint O deslocamento de buffer no arquivo que contém o registro de auditoria. Não permite valor nulo.

Aplica-se a: somente SQL Server
user_defined_event_id smallint ID de evento definida pelo usuário passada como um argumento para sp_audit_write. NULL 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.

Aplica-se a: SQL Server 2012 (11.x) e versões posteriores, Banco de Dados SQL do Azure e Instância Gerenciada de SQL
user_defined_information nvarchar(4000) Usado para registrar qualquer informação extra que o usuário deseja registrar no log de auditoria usando o sp_audit_write procedimento armazenado.

Aplica-se a: SQL Server 2012 (11.x) e versões posteriores, Banco de Dados SQL do Azure e Instância Gerenciada de SQL
audit_schema_version int Sempre 1.
sequence_group_id varbinary Identificador exclusivo da .

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores
transaction_id bigint Identificador exclusivo para identificar vários eventos de auditoria em uma transação.

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores
client_ip nvarchar(128) IP de origem do aplicativo cliente.

Aplica-se a: SQL Server 2017 (14.x) e versões posteriores e Banco de Dados SQL do Azure
application_name nvarchar(128) Nome do aplicativo cliente que executou a instrução que causou o evento de auditoria.

Aplica-se a: SQL Server 2017 (14.x) e versões posteriores e Banco de Dados SQL do Azure
duration_milliseconds bigint Duração da execução da consulta em milissegundos.

Aplica-se a: Banco de Dados SQL do Azure e Instância Gerenciada de SQL
response_rows bigint Número de linhas retornadas no conjunto de resultados.

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

Aplica-se a: somente Banco de Dados SQL do Azure
connection_id uniqueidentifier ID da conexão no servidor.

Aplica-se a: Banco de Dados SQL do Azure e Instância Gerenciada de SQL
data_sensitivity_information nvarchar(4000) 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 a classificação de dados do Banco de Dados SQL do Azure.

Aplica-se a: somente Banco de Dados SQL do Azure
host_name nvarchar(128) Nome do host da máquina cliente.
session_context nvarchar(4000) Os pares de chave-valor que fazem parte do contexto da sessão atual.
client_tls_version bigint Versão mínima do TLS com suporte do cliente.
client_tls_version_name nvarchar(128) Versão mínima do TLS com suporte do cliente.
database_transaction_id bigint ID da transação atual na sessão atual.
ledger_start_sequence_number bigint Número de sequência de uma operação dentro de uma transação que criou uma versão de linha.

Aplica-se a: somente Banco de Dados SQL do Azure
external_policy_permissions_checked nvarchar(4000) Informações relacionadas à verificação de permissão de autorização externa, quando um evento de auditoria é gerado e as políticas de autorização externa do Purview são avaliadas.

Aplica-se a: somente Banco de Dados SQL do Azure
obo_middle_tier_app_id varchar(120) A ID do aplicativo de camada intermediária que se conecta ao Banco de Dados SQL do Azure usando o acesso OBO (em nome de). Anulável. Retorna NULL se a solicitação não for feita usando o acesso OBO.

Aplica-se a: somente Banco de Dados SQL do Azure
is_local_secondary_replica bit True se o registro de auditoria se originar de uma réplica secundária local somente leitura, False caso contrário.

Aplica-se a: somente Banco de Dados SQL do Azure

Comentários

  • Se o argumento file_pattern passado para fizer referência a fn_get_audit_file um caminho ou arquivo que não existe, ou se o arquivo não for um arquivo de auditoria, a MSG_INVALID_AUDIT_FILE mensagem de erro será retornada.

  • fn_get_audit_file não pode ser usado quando a auditoria é criada com as APPLICATION_LOGopções , SECURITY_LOG, ou EXTERNAL_MONITOR .

Permissões

O SQL Server 2019 (15.x) e versões anteriores exigem CONTROL SERVER permissão no servidor.

O SQL Server 2022 (16.x) e versões posteriores exigem VIEW SERVER SECURITY AUDIT permissão no servidor.

Exemplos

Este exemplo lê de um arquivo chamado \\serverName\Audit\HIPAA_AUDIT.sqlaudit.

SELECT *
FROM sys.fn_get_audit_file(
    '\\serverName\Audit\HIPAA_AUDIT.sqlaudit',
    DEFAULT,
    DEFAULT
);
GO

Para obter um exemplo completo de como criar uma auditoria, confira Auditoria do SQL Server (Mecanismo de Banco de Dados).

Limitações

Selecionar linhas de dentro de sys.fn_get_audit_file um CTAS (Criar Tabela como Seleção) ou INSERT INTO é uma limitação ao executar no Azure Synapse Analytics. Embora a consulta seja concluída com êxito e nenhuma mensagem de erro seja exibida, não há linhas presentes na tabela criada usando CTAS ou INSERT INTO.

Mais informações

Exibições do catálogo do sistema:

Transact-SQL: