Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:Azure SQL Database
Armazém no Microsoft Fabric
Base de dados SQL no Microsoft Fabric
A sys.fn_get_audit_file_v2 função do sistema foi concebida para recuperar dados de registo de auditoria com maior eficiência em comparação com o seu antecessor, sys.fn_get_audit_file. A função introduz filtragem baseada no tempo tanto ao nível do ficheiro como do registo, proporcionando melhorias significativas de desempenho, especialmente para consultas direcionadas a intervalos de tempo específicos.
Informação de devolução a partir de um ficheiro de auditoria criado por uma auditoria de servidor. Para obter mais informações, consulte Auditoria do SQL Server (Mecanismo de Banco de Dados).
- Para informações sobre como configurar a auditoria de bases de dados SQL do Azure, consulte Começar com auditoria de bases de dados SQL.
- Para informações sobre como configurar a auditoria do Fabric Data Warehouse, consulte os Registos de Auditoria SQL no Fabric Data Warehouse.
- Para informações sobre como configurar uma base de dados SQL na auditoria do Fabric, consulte Auditoria SQL na base de dados SQL no Fabric.
Transact-SQL convenções de sintaxe
Sintaxe
fn_get_audit_file_v2 ( file_pattern
, { default | initial_file_name | NULL }
, { default | audit_record_offset | NULL }
, { default | start time | NULL }
, { default | end time | NULL } )
Arguments
file_pattern
Aplica-se a: Azure SQL Database only
Especifica o diretório ou caminho e o nome do ficheiro para o conjunto de ficheiros de auditoria a ser lido. file_pattern é Nvarchar(260).
Passar um caminho sem um padrão de nome de ficheiro gera um erro.
Este argumento é usado para especificar uma URL de blob (incluindo o endpoint de armazenamento e o contentor). Embora não suporte um curinga de asterisco, pode usar um prefixo de nome parcial de ficheiro (blob) (em vez do nome completo do blob) para recolher vários ficheiros (blobs) que começam com este prefixo. Por exemplo:
<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/- recolhe todos os ficheiros de auditoria (blobs) para a base de dados específica.<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/<AuditName>/<CreationDate>/<FileName>.xel- recolhe um ficheiro de auditoria específico (blob).
initial_file_name
Aplica-se a: Azure SQL Database only
Especifica o caminho e o nome de um ficheiro específico no conjunto de ficheiros de auditoria para começar a ler registos de auditoria. initial_file_name é Nvarchar(260).
O argumento initial_file_name deve conter entradas válidas ou deve conter o default valor ou NULL .
audit_record_offset
Aplica-se a: Azure SQL Database only
Especifica uma localização conhecida com o ficheiro especificado para o initial_file_name. Quando este argumento é usado, a função começa a ler no primeiro registo do buffer imediatamente após o deslocamento especificado.
O argumento audit_record_offset deve conter entradas válidas ou deve conter o default valor ou NULL .
audit_record_offset é bigint.
start_time
A hora de início para filtrar os registos. Registos anteriores a essa data são excluídos.
end_time
O fim do tempo para filtrar os registos. Registos posteriores a esse período são excluídos.
Tabela retornada
A tabela seguinte descreve o conteúdo do ficheiro de auditoria devolvido por esta função.
| Nome da coluna | Tipo | Description |
|---|---|---|
event_time |
datetime2 | Data e hora em que a ação auditável é acionada. Não anulável. |
sequence_number |
int | 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. Não anulável. |
action_id |
Varchar(4) | Identificação da ação. Não anulável. |
succeeded |
bit | Indica se a ação que disparou o evento foi bem-sucedida. Não anulável. 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 = sucesso0 = reprovado |
permission_bitmask |
Varbinário(16) | Em algumas ações, esta máscara de bits corresponde às permissões que foram concedidas, negadas ou revogadas. |
is_column_permission |
bit | Sinalizador que indica se esta é uma permissão de nível de coluna. Não anulável. Retorna 0 quando opermission_bitmask = 0 .1 = verdadeiro0 = falso |
session_id |
smallint | ID da sessão em que o evento ocorreu. Não anulável. |
server_principal_id |
int | ID do contexto de login no qual a ação é executada. Não anulável. |
database_principal_id |
int | ID do contexto de usuário do banco de dados no qual a ação é executada. Não anulável. Devoluções 0 se isto não se aplicar. Por exemplo, uma operação de servidor. |
target_server_principal_id |
int | Princípio de servidor onde a GRANT/DENY/REVOKE operação é executada. Não anulável. Devoluções 0 se não aplicável. |
target_database_principal_id |
int | O princípio da base de dados sobre o qual a GRANT/DENY/REVOKE operação é realizada. Não anulável. Devoluções 0 se não aplicável. |
object_id |
int | O ID da entidade onde ocorreu a auditoria, que inclui os seguintes objetos: - Objetos servidor - Bases de dados - Objetos de base de dados - Objetos de esquema Não anulável. Retorna 0 se a entidade for o próprio servidor ou se a auditoria não for realizada ao nível do objeto. Por exemplo, Autenticação. |
class_type |
Varchar(2) | O tipo de entidade auditável em que a auditoria ocorre. Não anulável. |
session_server_principal_name |
sysname | Principal do servidor para a sessão. Nullable. Devolve a identidade do login original que estava ligado à instância do Motor de Base de Dados caso houvesse mudanças de contexto explícitas ou implícitas. |
server_principal_name |
sysname | Login atual. Nullable. |
server_principal_sid |
Varbinary | SID de login atual. Nullable. |
database_principal_name |
sysname | Usuário atual. Nullable. Devoluções NULL se não estiverem disponíveis. |
target_server_principal_name |
sysname | Login alvo da ação. Nullable. Devoluções NULL se não aplicável. |
target_server_principal_sid |
Varbinary | SID do login do alvo. Nullable. Devoluções NULL se não aplicável. |
target_database_principal_name |
sysname | Utilizador alvo da ação. Nullable. Devoluções NULL se não aplicável. |
server_instance_name |
sysname | Nome da instância do servidor onde ocorreu a auditoria. Utiliza-se o formato padrão server\instance . |
database_name |
sysname | O contexto do banco de dados no qual a ação ocorreu. Nullable. Retornos NULL para auditorias que ocorrem ao nível do servidor. |
schema_name |
sysname | O contexto do esquema no qual a ação ocorreu. Nullable. Retornos NULL para auditorias que ocorrem fora de um esquema. |
object_name |
sysname | O nome da entidade onde ocorreu a auditoria, que inclui os seguintes objetos: - Objetos servidor - Bases de dados - Objetos de base de dados - Objetos de esquema Nullable. Retorna NULL se a entidade for o próprio servidor ou se a auditoria não for realizada ao nível do objeto. Por exemplo, Autenticação. |
statement |
Nvarchar(4000) | Transact-SQL afirmação, se existir. Nullable. Devoluções NULL se não aplicável. |
additional_information |
Nvarchar(4000) | 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 da pilha T-SQL é exibido em formato XML para ações que têm a pilha T-SQL associada. 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 atual de aninhamento da estrutura. 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 a caracteres XML inválidos como <, >, /, _x. Eles escapam como _xHHHH_. Representa HHHH o código hexadecimal UCS-2 de quatro dígitos para o carácter. Nullable. Retorna NULL quando não há informações adicionais reportadas pelo evento. |
file_name |
Varchar(260) | O caminho e o nome do arquivo de log de auditoria do qual o registro veio. Não anulável. |
audit_file_offset |
bigint | O deslocamento do buffer no arquivo que contém o registro de auditoria. Não anulável. |
user_defined_event_id |
smallint | ID de evento definido pelo utilizador passado como argumento para sp_audit_write.
NULL para eventos do sistema (por defeito) e não nulos para eventos definidos pelo utilizador. Para obter mais informações, consulte sp_audit_write (Transact-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. |
audit_schema_version |
int | Sempre 1. |
sequence_group_id |
Varbinary | Identificador único.< |
transaction_id |
bigint | Identificador único para identificar múltiplos eventos de auditoria numa única transação. |
client_ip |
nvarchar(128) | IP de origem da aplicação cliente. |
application_name |
nvarchar(128) | Nome da aplicação cliente que executou a instrução que causou o evento de auditoria. |
duration_milliseconds |
bigint | Duração da execução da consulta em milissegundos. |
response_rows |
bigint | Número de linhas devolvidas no conjunto de resultados.< |
affected_rows |
bigint | Número de linhas afetadas pela instrução executada. |
connection_id |
uniqueidentifier | ID da ligação no servidor. |
data_sensitivity_information |
Nvarchar(4000) | 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 Azure SQL Database. |
host_name |
nvarchar(128) | Nome do host da máquina cliente. |
session_context |
Nvarchar(4000) | Os pares chave-valor que fazem parte do contexto da sessão atual. |
client_tls_version |
bigint | Versão TLS mínima suportada pelo cliente. |
client_tls_version_name |
nvarchar(128) | Versão TLS mínima suportada pelo cliente. |
database_transaction_id |
bigint | ID da transação da transação atual na sessão atual. |
ledger_start_sequence_number |
bigint | O número de sequência de uma operação dentro de uma transação que criou uma versão de linha. |
external_policy_permissions_checked |
Nvarchar(4000) | Informações relacionadas com a verificação de autorização externa, quando é gerado um evento de auditoria e as políticas de autorização externa da Purview são avaliadas. |
obo_middle_tier_app_id |
Varchar (120) | O ID da aplicação de nível intermédio que se liga usando acesso on-behalf-of (OBO). Nullable. Devolve NULL se o pedido não for feito usando acesso OBO. |
is_local_secondary_replica |
bit |
True se o registo de auditoria tiver origem numa réplica secundária local apenas de leitura, False caso contrário. |
Melhorias ao longo de sys.fn_get_audit_file
A sys.fn_get_audit_file_v2 função oferece uma melhoria substancial em relação à sys.fn_get_audit_file mais antiga ao introduzir filtragem eficiente baseada no tempo tanto ao nível do ficheiro como do registo. Esta otimização é particularmente benéfica para consultas direcionadas a intervalos de tempo mais curtos e pode ajudar a manter o desempenho em ambientes com múltiplas bases de dados.
Filtragem de duplo nível
Filtragem ao nível dos ficheiros: A função filtra primeiro os ficheiros com base no intervalo de tempo especificado, reduzindo o número de ficheiros que precisam de ser digitalizados.
Filtragem ao nível de registo: Aplica então filtragem dentro dos ficheiros selecionados para extrair apenas os registos relevantes.
Melhorias de desempenho
As melhorias de desempenho dependem principalmente do tempo de rollover dos ficheiros blob e do intervalo de tempo consultado. Assumindo uma distribuição uniforme dos registos de auditoria:
Redução da carga: Ao minimizar o número de ficheiros e registos a analisar, reduz-se a carga no sistema e melhora os tempos de resposta às consultas.
Escalabilidade: Ajuda a manter o desempenho mesmo com o aumento do número de bases de dados, embora a melhoria líquida possa ser menos acentuada em ambientes com um elevado número de bases de dados.
Observações
Se o argumento file_pattern passado referir fn_get_audit_file_v2 um caminho ou ficheiro que não existe, ou se o ficheiro não for um ficheiro de auditoria, a MSG_INVALID_AUDIT_FILE mensagem de erro é devolvida.
A fn_get_audit_file_v2 função não pode ser usada quando a auditoria é criada com as APPLICATION_LOGopções, SECURITY_LOG, ou EXTERNAL_MONITOR .
Atualmente, no Fabric Data Warehouse, não se pode aceder a ficheiros individuais, apenas à pasta de auditoria. Os seguintes argumentos não são suportados para a Auditoria SQL num item de armazém: file_pattern, initial_file_name, audit_record_offset.
Permissions
Permissões necessárias no Azure SQL Database
Requer a CONTROL DATABASE permissão.
Os administradores do servidor podem aceder aos registos de auditoria de todas as bases de dados no servidor.
Os não administradores de servidores só podem aceder a registos de auditoria da base de dados atual.
Os blobs que não cumprem os critérios acima são ignorados (uma lista de blobs saltados é exibida na mensagem de saída da consulta). A função devolve logs apenas de blobs para os quais é permitido o acesso.
Permissões necessárias na base de dados SQL do Fabric
Para gerir auditorias usando funções de espaço de trabalho do Fabric, os utilizadores devem ter adesão ao papel de Contribuidor do espaço de trabalho do Fabric ou permissões superiores. Para gerir auditorias com permissões SQL:
- Para configurar a auditoria da base de dados, os utilizadores devem ter permissão ALTERAR QUALQUER AUDITORIA DA BASE DE DADOS.
- Para visualizar registos de auditoria usando T-SQL, os utilizadores devem ter a permissão de VISUALIZAR AUDITORIA DE SEGURANÇA DA BASE DE DADOS.
Para mais informações, consulte Auditoria na base de dados Fabric SQL.
Permissões necessárias no Fabric Data Warehouse
Os utilizadores devem ter a permissão do item Audit Fabric. Para obter mais informações, consulte Permissões.
Examples
A. Ver registos de auditoria SQL para Azure SQL Database
Este exemplo recupera registos de auditoria de uma localização específica do Azure Blob Storage, filtrando registos entre 2023-11-17T08:40:40Z e 2023-11-17T09:10:40Z.
SELECT *
FROM sys.fn_get_audit_file_v2(
'https://<storage_account>.blob.core.windows.net/sqldbauditlogs/server_name/database_name/SqlDbAuditing_ServerAudit/',
DEFAULT,
DEFAULT,
'2023-11-17T08:40:40Z',
'2023-11-17T09:10:40Z')
B. Veja registos de auditoria SQL para o Fabric Data Warehouse
Este exemplo recupera registos de auditoria da pasta OneLake alinhada com o espaço de trabalho e armazém atuais, filtrando registos entre 2023-11-17T08:40:40Z e 2023-11-17T09:10:40Z.
No portal Fabric, recupere o seu workspaceID e warehouseID:
-
<workspaceID>: Visite o seu espaço de trabalho no portal Fabric. Encontre o GUID do espaço de trabalho na URL após a/groups/secção, ou correndoSELECT @@SERVERNAMEnum armazém existente. Se o seu/groups/URL for seguido de/me/, está a usar o workspace predefinido, e atualmente o SQL Audit for Fabric Data Warehouse não é suportado no workspace padrão. -
<warehouseID>: Visite o seu armazém no portal Fabric. Encontre o ID do armazém no URL após a/warehouses/secção.
SELECT *
FROM sys. fn_get_audit_file_v2(
'https://onelake.blob.fabric.microsoft.com/{workspaceId}/{warehouseId}/Audit/sqldbauditlogs/',
DEFAULT,
DEFAULT,
'2023-11-17T08:40:40Z',
'2023-11-17T09:10:40Z')
C. Veja registos de auditoria SQL para base de dados SQL no Microsoft Fabric
Este exemplo recupera registos de auditoria do OneLake no Microsoft Fabric, entre 2025-11-17T08:40:40Z e 2025-11-17T09:10:40Z.
No script seguinte, precisa de fornecer o ID do seu espaço de trabalho Microsoft Fabric e o ID da base de dados. Ambos podem ser encontrados no URL do portal Fabric. Por exemplo: https://fabric.microsoft.com/groups/<fabric workspace id>/sqldatabases/<fabric sql database id>. A primeira cadeia de identificador única na URL é o ID do espaço de trabalho do Fabric, e a segunda cadeia de identificador única é o ID da base de dados SQL.
- Substitua
<fabric_workspace_id>pelo ID do espaço de trabalho do Fabric. Você pode encontrar o ID de um espaço de trabalho facilmente no endereço, é a sequência única entre dois caracteres/após o/groups/na janela do navegador. - Substitua
<fabric sql database id>pelo seu banco de dados SQL no identificador do banco de dados Fabric. Você pode encontrar o ID do item de banco de dados facilmente na URL, é a cadeia de caracteres exclusiva dentro de dois/caracteres depois dos/sqldatabases/na janela do navegador.
SELECT *
FROM sys.fn_get_audit_file_v2(
'https://onelake.blob.fabric.microsoft.com/<fabric workspace id>/<fabric sql database id>/Audit/sqldbauditlogs/',
DEFAULT,
DEFAULT,
'2025-11-17T08:40:40Z',
'2025-11-17T09:10:40Z')
Mais informações
Visualizações do catálogo do sistema:
- sys.server_audit_specifications (Transact-SQL)
- sys.server_audit_specification_details (Transact-SQL)
- sys.database_audit_specifications (Especificações de auditoria do banco de dados) (Transact-SQL)
- sys.database_audit_specification_details (Transact-SQL)
Transact-SQL:
- CRIAR AUDITORIA DE SERVIDOR (Transact-SQL)
- AUDITORIA DO ALTER SERVER (Transact-SQL)
- AUDITORIA DO DROP SERVER (Transact-SQL)
- CRIAR ESPECIFICAÇÃO DE AUDITORIA DO SERVIDOR (Transact-SQL)
- ALTERAR A ESPECIFICAÇÃO DE AUDITORIA DO SERVIDOR (Transact-SQL)
- ELIMINAR A ESPECIFICAÇÃO DE AUDITORIA DO SERVIDOR (Transact-SQL)
- CRIAR ESPECIFICAÇÃO DE AUDITORIA DE BANCO DE DADOS (Transact-SQL)
- ALTERAR ESPECIFICAÇÃO DE AUDITORIA DE BANCO DE DADOS (Transact-SQL)
- DESCARTAR ESPECIFICAÇÃO DE AUDITORIA DE BASE DE DADOS (Transact-SQL)
- ALTERAR AUTORIZAÇÃO (Transact-SQL)
Conteúdo relacionado
- Criar uma Auditoria de Servidor e uma Especificação de Auditoria de Servidor
- sys.dm_server_audit_status (Transact-SQL)
- sys.dm_audit_actions (Transact-SQL)
- sys.dm_audit_class_type_map (Transact-SQL)
- sys.server_audits (Transact-SQL)
- sys.server_file_audits (Transact-SQL)
- Comece com auditoria de bases de dados SQL
- Registos de Auditoria SQL no Fabric Data Warehouse