sys.fn_get_audit_file (Transact-SQL)sys.fn_get_audit_file (Transact-SQL)

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure simAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Retorna informações de um arquivo de auditoria criado por uma auditoria de servidor no SQL ServerSQL Server.Returns information from an audit file created by a server audit in SQL ServerSQL Server. Para obter mais informações, veja Auditoria do SQL Server (Mecanismo de Banco de Dados).For more information, see SQL Server Audit (Database Engine).

Ícone de link do tópico Convenções de sintaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

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

ArgumentosArguments

file_patternfile_pattern
Especifica o diretório ou caminho e o nome de arquivo do conjunto de arquivos de auditoria que será lido.Specifies the directory or path and file name for the audit file set to be read. O tipo é nvarchar (260) .Type is nvarchar(260).

  • SQL Server:SQL Server:

    Esse argumento deve incluir um caminho (letra de unidade ou compartilhamento de rede) e um nome de arquivo, podendo conter um caractere curinga.This argument must include both a path (drive letter or network share) and a file name that can include a wildcard. Um único asterisco (*) pode ser usado para coletar vários arquivos de um conjunto de arquivos de auditoria.A single asterisk (*) can be used to collect multiple files from an audit file set. Por exemplo:For example:

    • <caminho >\* -coletar todos os arquivos de auditoria no local especificado.<path>\* - Collect all audit files in the specified location.

    • <caminho > \ LoginsAudit_ {GUID} -colete todos os arquivos de auditoria que têm o nome e o par GUID especificados.<path>\LoginsAudit_{GUID} - Collect all audit files that have the specified name and GUID pair.

    • <caminho > \ LoginsAudit_ {GUID} _00_29384. sqlaudit -coleta um arquivo de auditoria específico.<path>\LoginsAudit_{GUID}_00_29384.sqlaudit - Collect a specific audit file.

  • Banco de dados SQL do Azure ou SQL data warehouse do Azure:Azure SQL Database or Azure SQL Data Warehouse:

    Esse argumento é usado para especificar uma URL de BLOB (incluindo o ponto de extremidade de armazenamento e o contêiner).This argument is used to specify a blob URL (including the storage endpoint and container). Embora não ofereça suporte a um curinga de asterisco, você pode usar um prefixo de nome de arquivo parcial (BLOB) (em vez do nome de blob completo) para coletar vários arquivos (BLOBs) que começam com esse prefixo.While it does not support an asterisk wildcard, you can use a partial file (blob) name prefix (instead of the full blob name) to collect multiple files (blobs) that begin with this prefix. Por exemplo:For example:

    • <Storage_endpoint>/<contêiner>/<servername>/<DatabaseName>/ -coleta todos os arquivos de auditoria (BLOBs) para o banco de dados específico.<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/ - collects all audit files (blobs) for the specific database.

    • <Storage_endpoint>/<contêiner>/<nomedoservidor>/<DatabaseName>/<auditname>/<CreationDate>/<FileName>. xel -coleta um arquivo de auditoria específico (BLOB).<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/<AuditName>/<CreationDate>/<FileName>.xel - collects a specific audit file (blob).

Observação

Indicar um caminho sem um padrão de nome de arquivo irá gerar um erro.Passing a path without a file name pattern will generate an error.

initial_file_nameinitial_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.Specifies the path and name of a specific file in the audit file set to start reading audit records from. O tipo é nvarchar (260) .Type is nvarchar(260).

Observação

O argumento initial_file_name deve conter entradas válidas ou deve conter o padrão | Valor nulo.The initial_file_name argument must contain valid entries or must contain either the default | NULL value.

audit_record_offsetaudit_record_offset
Especifica um local conhecido com o arquivo especificado para o initial_file_name.Specifies a known location with the file specified for the initial_file_name. Quando esse argumento for usado, a função começará a leitura a partir do primeiro registro do buffer imediatamente após o deslocamento especificado.When this argument is used the function will start reading at the first record of the Buffer immediately following the specified offset.

Observação

O argumento audit_record_offset deve conter entradas válidas ou deve conter o padrão | Valor nulo.The audit_record_offset argument must contain valid entries or must contain either the default | NULL value. O tipo é bigint.Type is bigint.

Tabelas retornadasTables Returned

A tabela a seguir descreve o conteúdo do arquivo de auditoria que pode ser retornado por essa função.The following table describes the audit file content that can be returned by this function.

Nome da colunaColumn name TypeType DescriçãoDescription
action_idaction_id varchar(4)varchar(4) A identificação da ação.ID of the action. Não permite valor nulo.Not nullable.
additional_informationadditional_information nvarchar(4000)nvarchar(4000) Informações exclusivas que se aplicam somente a um evento são retornadas como XML.Unique information that only applies to a single event is returned as XML. Um número pequeno de ações auditável contém esse tipo de informação.A small number of auditable actions contain this kind of information.

Um nível de pilha TSQL será exibido em formato XML para ações que tenham pilha TSQL associada a elas.One level of TSQL stack will be displayed in XML format for actions that have TSQL stack associated with them. O formato XML será:The XML format will be:

<tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack>

O nest_level do quadro indica o nível de aninhamento atual do quadro.Frame nest_level indicates the current nesting level of the frame. O nome do Módulo é representado em formato de três partes (database_name, schema_name e object_name).The Module name is represented in three part format (database_name, schema_name and object_name). O nome do módulo será analisado para escapar caracteres XML inválidos, como '\<', '>', '/'``'_x'.The module name will be parsed to escape invalid xml characters like '\<', '>', '/', '_x'. Eles serão ignorados como _xHHHH\_.They will be escaped as _xHHHH\_. O HHHH representa o código UCS-2 hexadecimal de quatro dígitos do caractereThe HHHH stands for the four-digit hexadecimal UCS-2 code for the character

Permite valor nulo.Is nullable. Retornará NULL quando o evento não reportar informações adicionais.Returns NULL when there is no additional information reported by the event.
affected_rowsaffected_rows bigintbigint Aplica-se a: somente BD SQL do AzureApplies to: Azure SQL DB only

Número de linhas afetadas pela instrução executada.Number of rows affected by the executed statement.
application_nameapplication_name nvarchar(128)nvarchar(128) Aplica-se a: BD SQL do Azure + SQL Server (a partir de 2017)Applies to: Azure SQL DB + SQL Server (starting with 2017)

Nome do aplicativo cliente que executou a instrução que causou o evento de auditoriaName of client application which executed the statement that caused the audit event
audit_file_offsetaudit_file_offset bigintbigint Aplica-se a: somente SQL ServerApplies to: SQL Server only

O deslocamento de buffer no arquivo que contém o registro de auditoria.The buffer offset in the file that contains the audit record. Não permite valor nulo.Is not nullable.
audit_schema_versionaudit_schema_version intint Sempre 1Always 1
class_typeclass_type varchar(2)varchar(2) O tipo de entidade auditável no qual a auditoria ocorre.The type of auditable entity that the audit occurs on. Não permite valor nulo.Is not nullable.
client_ipclient_ip nvarchar(128)nvarchar(128) Aplica-se a: BD SQL do Azure + SQL Server (a partir de 2017)Applies to: Azure SQL DB + SQL Server (starting with 2017)

IP de origem do aplicativo clienteSource IP of the client application
connection_idconnection_id GUIDGUID Aplica-se a: banco de BD SQL do Azure e instância gerenciadaApplies to: Azure SQL DB and Managed instance

ID da conexão no servidorID of the connection in the server
data_sensitivity_informationdata_sensitivity_information nvarchar(4000)nvarchar(4000) Aplica-se a: somente BD SQL do AzureApplies to: Azure SQL DB only

Tipos de informações e rótulos de sensibilidade retornados pela consulta auditada, com base nas colunas classificadas no banco de dados.Information types and sensitivity labels returned by the audited query, based on the classified columns in the database. Saiba mais sobre a descoberta e a classificação de dados do banco SQL do AzureLearn more about Azure SQL Database data discover and classification
database_namedatabase_name sysnamesysname O contexto do banco de dados no qual a ação aconteceu.The database context in which the action occurred. Permite valor nulo.Is nullable. Retorna NULL para auditorias que ocorrem no nível do servidor.Returns NULL for audits occurring at the server level.
database_principal_iddatabase_principal_id intint ID do contexto do usuário de banco de dados no qual a ação é executada.ID of the database user context that the action is performed in. Não permite valor nulo.Is not nullable. Retornará 0 se isso não se aplicar.Returns 0 if this does not apply. Por exemplo, uma operação de servidor.For example, a server operation.
database_principal_namedatabase_principal_name sysnamesysname Usuário atual.Current user. Permite valor nulo.Is nullable. Retorna NULL se não disponível.Returns NULL if not available.
duration_millisecondsduration_milliseconds bigintbigint Aplica-se a: banco de BD SQL do Azure e instância gerenciadaApplies to: Azure SQL DB and Managed instance

Duração da execução da consulta em milissegundosQuery execution duration in milliseconds
event_timeevent_time datetime2datetime2 Data e hora em que a ação auditável é acionada.Date and time when the auditable action is fired. Não permite valor nulo.Is not nullable.
file_namefile_name varchar(260)varchar(260) O caminho e nome do arquivo de log de auditoria que deu origem ao registro.The path and name of the audit log file that the record came from. Não permite valor nulo.Is not nullable.
is_column_permissionis_column_permission bitbit Sinalizador que indica se esta é uma permissão no nível de coluna.Flag indicating if this is a column level permission. Não permite valor nulo.Is not nullable. Retorna 0 quando permission_bitmask = 0.Returns 0 when the permission_bitmask = 0.
1 = true1 = true
0 = false0 = false
object_idobject_id intint A ID da entidade na qual a auditoria ocorreu.The ID of the entity on which the audit occurred. Isso inclui o seguinte:This includes the following:
Objetos de servidorServer objects
Bancos de dadosDatabases
Objetos de banco de dadosDatabase objects
Objetos de esquemaSchema objects
Não permite valor nulo.Is not nullable. Retornará 0 se a entidade for o próprio Servidor ou se a auditoria não for realizada no nível de um objeto.Returns 0 if the entity is the Server itself or if the audit is not performed at an object level. Por exemplo, Autenticação.For example, Authentication.
object_nameobject_name sysnamesysname O nome da entidade na qual a auditoria ocorreu.The name of the entity on which the audit occurred. Isso inclui o seguinte:This includes the following:
Objetos de servidorServer objects
Bancos de dadosDatabases
Objetos de banco de dadosDatabase objects
Objetos de esquemaSchema objects
Permite valor nulo.Is nullable. Retornará NULL se a entidade for o próprio Servidor ou se a auditoria não for realizada no nível de um objeto.Returns NULL if the entity is the Server itself or if the audit is not performed at an object level. Por exemplo, Autenticação.For example, Authentication.
permission_bitmaskpermission_bitmask varbinary(16)varbinary(16) Em algumas ações, são as permissões que foram concedidas, negadas ou revogadas.In some actions, this is the permissions that were grant, denied, or revoked.
response_rowsresponse_rows bigintbigint Aplica-se a: banco de BD SQL do Azure e instância gerenciadaApplies to: Azure SQL DB and Managed instance

Número de linhas retornadas no conjunto de resultados.Number of rows returned in the result set.
schema_nameschema_name sysnamesysname O contexto do esquema no qual a ação aconteceu.The schema context in which the action occurred. Permite valor nulo.Is nullable. Retorna NULL para auditorias que ocorrem fora de um esquema.Returns NULL for audits occurring outside a schema.
sequence_group_idsequence_group_id varbinaryvarbinary Aplica-se a: somente SQL Server (começando com 2016)Applies to: SQL Server only (starting with 2016)

Identificador exclusivoUnique identifier
sequence_numbersequence_number intint 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.Tracks the sequence of records within a single audit record that was too large to fit in the write buffer for audits. Não permite valor nulo.Is not nullable.
server_instance_nameserver_instance_name sysnamesysname Nome da instância de servidor no qual a auditoria ocorreu.Name of the server instance where the audit occurred. O formato servidor\instância padrão é usado.The standard server\instance format is used.
server_principal_idserver_principal_id intint ID do contexto de logon em que a ação é executada.ID of the login context that the action is performed in. Não permite valor nulo.Is not nullable.
server_principal_nameserver_principal_name sysnamesysname Logon atual.Current login. Permite valor nulo.Is nullable.
server_principal_sidserver_principal_sid varbinaryvarbinary SID do logon atual.Current login SID. Permite valor nulo.Is nullable.
session_idsession_id smallintsmallint Identificação da sessão em que ocorreu o evento.ID of the session on which the event occurred. Não permite valor nulo.Is not nullable.
session_server_principal_namesession_server_principal_name sysnamesysname Entidade de segurança do servidor para sessão.Server principal for session. Permite valor nulo.Is nullable.
instruçãostatement nvarchar(4000)nvarchar(4000) Instrução TSQL, se existir.TSQL statement if it exists. Permite valor nulo.Is nullable. Retorna NULL se não aplicável.Returns NULL if not applicable.
succeededsucceeded bitbit Indica se a ação que disparou o evento foi bem-sucedida.Indicates whether the action that triggered the event succeeded. Não permite valor nulo.Is not nullable. 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.For all events other than login events, this only reports whether the permission check succeeded or failed, not the operation.
1 = Êxito1 = success
0 = falha0 = fail
target_database_principal_idtarget_database_principal_id intint O banco de dados principal no qual a operação GRANT/DENY/REVOKE é executada.The database principal the GRANT/DENY/REVOKE operation is performed on. Não permite valor nulo.Is not nullable. Retorna 0 se não aplicável.Returns 0 if not applicable.
target_database_principal_nametarget_database_principal_name sysnamesysname Usuário de destino da ação.Target user of action. Permite valor nulo.Is nullable. Retorna NULL se não aplicável.Returns NULL if not applicable.
target_server_principal_idtarget_server_principal_id intint Diretor de Servidor que o GRANT/operação do DENY/REVOKE é executada em.Server principal that the GRANT/DENY/REVOKE operation is performed on. Não permite valor nulo.Is not nullable. Retorna 0 se não aplicável.Returns 0 if not applicable.
target_server_principal_nametarget_server_principal_name sysnamesysname Logon de destino da ação.Target login of action. Permite valor nulo.Is nullable. Retorna NULL se não aplicável.Returns NULL if not applicable.
target_server_principal_sidtarget_server_principal_sid varbinaryvarbinary SID do logon de destino.SID of target login. Permite valor nulo.Is nullable. Retorna NULL se não aplicável.Returns NULL if not applicable.
transaction_idtransaction_id bigintbigint Aplica-se a: somente SQL Server (começando com 2016)Applies to: SQL Server only (starting with 2016)

Identificador exclusivo para identificar vários eventos de auditoria em uma transaçãoUnique identifier to identify multiple audit events in one transaction
user_defined_event_iduser_defined_event_id smallintsmallint Aplica-se a: SQL Server 2012 (11.x)SQL Server 2012 (11.x) e posterior, banco de BD SQL do Azure e instância gerenciadaApplies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later, Azure SQL DB and Managed instance

ID do evento definido pelo usuário passada como um argumento para sp_audit_write.User defined event id passed as an argument to sp_audit_write. NULL para eventos do sistema (padrão) e diferente de zero para o evento definido pelo usuário.NULL for system events (default) and non-zero for user-defined event. Para obter mais informações, consulte (SP_AUDIT_WRITE Transact-)SQL.For more information, see sp_audit_write (Transact-SQL).
user_defined_informationuser_defined_information nvarchar(4000)nvarchar(4000) Aplica-se a: SQL Server 2012 (11.x)SQL Server 2012 (11.x) e posterior, banco de BD SQL do Azure e instância gerenciadaApplies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later, Azure SQL DB and Managed instance

Usado para registrar informações adicionais que o usuário deseja registrar no log de auditoria usando o procedimento armazenado sp_audit_write .Used to record any extra information the user wants to record in audit log by using the sp_audit_write stored procedure.

RemarksRemarks

Se o argumento de file_pattern passado para fn_get_audit_file fizer referência a um caminho ou arquivo que não existe, ou se o arquivo não for um arquivo de auditoria, a mensagem de erro MSG_INVALID_AUDIT_FILE será retornada.If the file_pattern argument passed to fn_get_audit_file references a path or file that does not exist, or if the file is not an audit file, the MSG_INVALID_AUDIT_FILE error message is returned.

PermissõesPermissions

  • SQL Server: requer a permissão Control Server .SQL Server: Requires the CONTROL SERVER permission.
  • Banco de dados SQL do Azure: requer a permissão Control Database .Azure SQL DB: Requires the CONTROL DATABASE permission.
    • Os administradores de servidor podem acessar os logs de auditoria de todos os bancos de dados no servidor.Server admins can access audit logs of all databases on the server.
    • Os administradores de servidor não podem acessar somente os logs de auditoria do banco de dados atual.Non server admins can only access audit logs from the current database.
    • Os blobs que não atenderem aos critérios acima serão ignorados (uma lista de BLOBs ignorados será exibida na mensagem de saída da consulta) e a função retornará logs somente de BLOBs para os quais o acesso é permitido.Blobs that do not meet the above criteria will be skipped (a list of skipped blobs will be displayed in the query output message), and the function will return logs only from blobs for which access is allowed.

ExemplosExamples

  • SQL ServerSQL Server

    Este exemplo lê de um arquivo chamado \\serverName\Audit\HIPAA_AUDIT.sqlaudit.This example reads from a file that is named \\serverName\Audit\HIPAA_AUDIT.sqlaudit.

    SELECT * FROM sys.fn_get_audit_file ('\\serverName\Audit\HIPAA_AUDIT.sqlaudit',default,default);  
    GO  
    
  • Banco de Dados SQL do AzureAzure SQL Database

    Este exemplo lê de um arquivo chamado ShiraServer/MayaDB/SqlDbAuditing_Audit/2017-07-14/10_45_22_173_1.xel:This example reads from a file that is named ShiraServer/MayaDB/SqlDbAuditing_Audit/2017-07-14/10_45_22_173_1.xel:

    SELECT * FROM sys.fn_get_audit_file ('https://mystorage.blob.core.windows.net/sqldbauditlogs/ShiraServer/MayaDB/SqlDbAuditing_Audit/2017-07-14/10_45_22_173_1.xel',default,default);
    GO  
    

    Este exemplo lê o mesmo arquivo acima, mas com cláusulas T-SQL adicionais (Top, order bye cláusula Where para filtrar os registros de auditoria retornados pela função):This example reads from the same file as above, but with additional T-SQL clauses (TOP, ORDER BY, and WHERE clause for filtering the audit records returned by the function):

    SELECT TOP 10 * FROM sys.fn_get_audit_file ('https://mystorage.blob.core.windows.net/sqldbauditlogs/ShiraServer/MayaDB/SqlDbAuditing_Audit/2017-07-14/10_45_22_173_1.xel',default,default)
    WHERE server_principal_name = 'admin1'
    ORDER BY event_time
    GO
    

    Este exemplo lê todos os logs de auditoria de servidores que começam com Sh:This example reads all audit logs from servers that begin with Sh:

    SELECT * FROM sys.fn_get_audit_file ('https://mystorage.blob.core.windows.net/sqldbauditlogs/Sh',default,default);
    GO  
    

Para obter um exemplo completo de como criar uma auditoria, consulte Auditoria do SQL Server (Mecanismo de Banco de Dados).For a full example about how to create an audit, see SQL Server Audit (Database Engine).

Para obter informações sobre como configurar a auditoria do banco de dados SQL do Azure, consulte Introdução à auditoria do banco de dados SQL.For information on setting up Azure SQL Database auditing, see Get Started with SQL Database auditing.

Consulte tambémSee Also

CREATE SERVER AUDIT (Transact-SQL) CREATE SERVER AUDIT (Transact-SQL)
ALTER SERVER AUDIT (Transact-SQL) ALTER SERVER AUDIT (Transact-SQL)
DROP SERVER AUDIT (Transact-SQL) DROP SERVER AUDIT (Transact-SQL)
CREATE SERVER AUDIT SPECIFICATION (Transact-SQL) CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)
ALTER SERVER AUDIT SPECIFICATION (Transact-SQL) ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)
DROP SERVER AUDIT SPECIFICATION (Transact-SQL) DROP SERVER AUDIT SPECIFICATION (Transact-SQL)
CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL) CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL) ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)
DROP DATABASE AUDIT SPECIFICATION (Transact-SQL) DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL) ALTER AUTHORIZATION (Transact-SQL)
sys.server_audits (Transact-SQL) sys.server_audits (Transact-SQL)
sys.server_file_audits (Transact-SQL) sys.server_file_audits (Transact-SQL)
sys.server_audit_specifications (Transact-SQL) sys.server_audit_specifications (Transact-SQL)
sys.server_audit_specification_details (Transact-SQL) sys.server_audit_specification_details (Transact-SQL)
sys.database_audit_specifications (Transact-SQL) sys.database_audit_specifications (Transact-SQL)
sys.database_audit_specification_details (Transact-SQL) sys.database_audit_specification_details (Transact-SQL)
sys.dm_server_audit_status (Transact-SQL) sys.dm_server_audit_status (Transact-SQL)
sys.dm_audit_actions (Transact-SQL) sys.dm_audit_actions (Transact-SQL)
sys.dm_audit_class_type_map (Transact-SQL) sys.dm_audit_class_type_map (Transact-SQL)
Criar uma auditoria de servidor e uma especificação de auditoria de servidorCreate a Server Audit and Server Audit Specification