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

SI APPLICA A: sìSQL Server sìDatabase SQL di Azure sìAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Restituisce informazioni da un file di controllo creato da un controllo del server in SQL ServerSQL Server.Returns information from an audit file created by a server audit in SQL ServerSQL Server. Per altre informazioni, vedere SQL Server Audit (Motore di database).For more information, see SQL Server Audit (Database Engine).

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax

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

ArgomentiArguments

file_patternfile_pattern
Specifica la directory o il percorso e il nome di file per il set di file di controllo da leggere.Specifies the directory or path and file name for the audit file set to be read. Il tipo è nvarchar (260) .Type is nvarchar(260).

  • SQL Server:SQL Server:

    Questo argomento deve includere sia un percorso (lettera di unità o condivisione di rete) che un nome di file, che può includere un carattere jolly.This argument must include both a path (drive letter or network share) and a file name that can include a wildcard. È possibile utilizzare un singolo asterisco (*) per raccogliere più file da un set di file di controllo.A single asterisk (*) can be used to collect multiple files from an audit file set. Ad esempio:For example:

    • <percorso >\* raccogliere tutti i file di controllo nel percorso specificato.<path>\* - Collect all audit files in the specified location.

    • <percorso > \ LoginsAudit_ {GUID} : raccoglie tutti i file di controllo con il nome e la coppia GUID specificati.<path>\LoginsAudit_{GUID} - Collect all audit files that have the specified name and GUID pair.

    • <percorso > \ LoginsAudit_ {GUID} _00_29384. sqlaudit : raccoglie un file di controllo specifico.<path>\LoginsAudit_{GUID}_00_29384.sqlaudit - Collect a specific audit file.

  • Azure SQL data warehouse o database SQL di Azure:Azure SQL Database or Azure SQL Data Warehouse:

    Questo argomento viene usato per specificare un URL BLOB (incluso l'endpoint di archiviazione e il contenitore).This argument is used to specify a blob URL (including the storage endpoint and container). Sebbene non supporti un carattere jolly asterisco, è possibile usare un prefisso di nome di file parziale (BLOB), anziché il nome del BLOB completo, per raccogliere più file (BLOB) che iniziano con questo prefisso.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. Ad esempio:For example:

    • <Storage_endpoint>/<container>/<nomeserver>/<Databasename> /: raccoglie tutti i file di controllo (BLOB) per il database specifico.<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/ - collects all audit files (blobs) for the specific database.

    • <Storage_endpoint>/<Container>/<nomeserver>/<Databasename>/<auditname>/<CreationDate>/<FileName>. xel -raccoglie un file di controllo specifico (BLOB).<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/<AuditName>/<CreationDate>/<FileName>.xel - collects a specific audit file (blob).

Nota

Se si passa un percorso senza un criterio del nome di file, verrà generato un errore.Passing a path without a file name pattern will generate an error.

initial_file_nameinitial_file_name
Specifica il percorso e il nome di un file specifico del set di file di controllo da cui avviare la lettura dei record di controllo.Specifies the path and name of a specific file in the audit file set to start reading audit records from. Il tipo è nvarchar (260) .Type is nvarchar(260).

Nota

L'argomento initial_file_name deve contenere voci valide o deve contenere l'impostazione predefinita | Valore NULL.The initial_file_name argument must contain valid entries or must contain either the default | NULL value.

audit_record_offsetaudit_record_offset
Specifica un percorso noto con il file specificato per l'argomento initial_file_name.Specifies a known location with the file specified for the initial_file_name. Quando viene utilizzato questo argomento, la funzione avvierà la lettura dal primo record del buffer immediatamente successivo all'offset specificato.When this argument is used the function will start reading at the first record of the Buffer immediately following the specified offset.

Nota

L'argomento audit_record_offset deve contenere voci valide o deve contenere l'impostazione predefinita | Valore NULL.The audit_record_offset argument must contain valid entries or must contain either the default | NULL value. Il tipo è bigint.Type is bigint.

Tabelle restituiteTables Returned

Nella tabella seguente viene descritto il contenuto del file di controllo che può essere restituito da questa funzione.The following table describes the audit file content that can be returned by this function.

Nome colonnaColumn name TypeType DescrizioneDescription
action_idaction_id varchar(4)varchar(4) ID dell'azione.ID of the action. Non ammette i valori NULL.Not nullable.
additional_informationadditional_information nvarchar(4000)nvarchar(4000) Le informazioni univoche applicabili solo a un singolo evento vengono restituite in formato XML.Unique information that only applies to a single event is returned as XML. Questo tipo di informazioni è contenuto in un numero ridotto di azioni controllabili.A small number of auditable actions contain this kind of information.

Un livello di stack TSQL sarà visualizzato in formato XML per le azioni associate a tale stack.One level of TSQL stack will be displayed in XML format for actions that have TSQL stack associated with them. Il formato XML sarà:The XML format will be:

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

Frame nest_level indica il livello di nidificazione corrente del frame.Frame nest_level indicates the current nesting level of the frame. Il nome del modulo viene rappresentato in un formato composto da tre parti (nome_database, nome_schema e nome_oggetto)The Module name is represented in three part format (database_name, schema_name and object_name). Il nome del modulo verrà analizzato per evitare caratteri XML non validi, ad esempio '\<', '>', '/'``'_x'.The module name will be parsed to escape invalid xml characters like '\<', '>', '/', '_x'. Verranno sottoposte a escape come _xHHHH\_.They will be escaped as _xHHHH\_. dove HHHH rappresenta il codice UCS-2 esadecimale a quattro cifre per il carattere.The HHHH stands for the four-digit hexadecimal UCS-2 code for the character

Ammette i valori Null.Is nullable. Restituisce NULL quando non sono presenti informazioni aggiuntive segnalate dall'evento.Returns NULL when there is no additional information reported by the event.
affected_rowsaffected_rows bigintbigint Si applica a: solo database SQL di AzureApplies to: Azure SQL DB only

Numero di righe interessate dall'istruzione eseguita.Number of rows affected by the executed statement.
application_nameapplication_name nvarchar(128)nvarchar(128) Si applica a: database SQL di Azure + SQL Server (a partire da 2017)Applies to: Azure SQL DB + SQL Server (starting with 2017)

Nome dell'applicazione client che ha eseguito l'istruzione che ha causato l'evento di controlloName of client application which executed the statement that caused the audit event
audit_file_offsetaudit_file_offset bigintbigint Si applica a: solo SQL ServerApplies to: SQL Server only

Offset del buffer nel file che contiene il record di controllo.The buffer offset in the file that contains the audit record. Non ammette i valori Null.Is not nullable.
audit_schema_versionaudit_schema_version intint Sempre 1Always 1
class_typeclass_type varchar(2)varchar(2) Tipo di entità controllabile in cui si verifica il controllo.The type of auditable entity that the audit occurs on. Non ammette i valori Null.Is not nullable.
client_ipclient_ip nvarchar(128)nvarchar(128) Si applica a: database SQL di Azure + SQL Server (a partire da 2017)Applies to: Azure SQL DB + SQL Server (starting with 2017)

IP di origine dell'applicazione clientSource IP of the client application
connection_idconnection_id GUIDGUID Si applica a: database SQL di Azure e istanza gestitaApplies to: Azure SQL DB and Managed instance

ID della connessione nel serverID of the connection in the server
data_sensitivity_informationdata_sensitivity_information nvarchar(4000)nvarchar(4000) Si applica a: solo database SQL di AzureApplies to: Azure SQL DB only

Tipi di informazioni e etichette di riservatezza restituite dalla query controllata, basate sulle colonne classificate nel database.Information types and sensitivity labels returned by the audited query, based on the classified columns in the database. Altre informazioni sull' individuazione e la classificazione dei dati del database SQL di AzureLearn more about Azure SQL Database data discover and classification
database_namedatabase_name sysnamesysname Contesto del database in cui si è verificata l'azione.The database context in which the action occurred. Ammette i valori Null.Is nullable. Restituisce NULL per i controlli che si verificano a livello di server.Returns NULL for audits occurring at the server level.
database_principal_iddatabase_principal_id intint ID del contesto dell'utente del database in cui viene eseguita l'azione.ID of the database user context that the action is performed in. Non ammette i valori Null.Is not nullable. Se non applicabile,Returns 0 if this does not apply. ad esempio nel caso di un'operazione server, restituisce 0.For example, a server operation.
database_principal_namedatabase_principal_name sysnamesysname Utente corrente.Current user. Ammette i valori Null.Is nullable. Se non disponibile, restituisce NULL.Returns NULL if not available.
duration_millisecondsduration_milliseconds bigintbigint Si applica a: database SQL di Azure e istanza gestitaApplies to: Azure SQL DB and Managed instance

Durata esecuzione query in millisecondiQuery execution duration in milliseconds
event_timeevent_time datetime2datetime2 Data e ora di attivazione dell'azione controllabile.Date and time when the auditable action is fired. Non ammette i valori Null.Is not nullable.
file_namefile_name varchar(260)varchar(260) Percorso e nome del file di log di controllo da cui proviene il record.The path and name of the audit log file that the record came from. Non ammette i valori Null.Is not nullable.
is_column_permissionis_column_permission bitbit Flag che indica se si tratta di un'autorizzazione a livello di colonna.Flag indicating if this is a column level permission. Non ammette i valori Null.Is not nullable. Restituisce 0 quando permission_bitmask = 0.Returns 0 when the permission_bitmask = 0.
1 = True1 = true
0 = False0 = false
object_idobject_id intint ID dell'entità in cui si è verificato il controllo.The ID of the entity on which the audit occurred. Sono inclusi gli elementi seguenti:This includes the following:
Oggetti serverServer objects
DatabaseDatabases
Oggetti di databaseDatabase objects
Oggetti dello schemaSchema objects
Non ammette i valori Null.Is not nullable. Restituisce 0 se l'entità è il server stesso o se il controllo non viene eseguito a livello di oggetto,Returns 0 if the entity is the Server itself or if the audit is not performed at an object level. ad esempio nel caso dell'autenticazione.For example, Authentication.
object_nameobject_name sysnamesysname Nome dell'entità in cui si è verificato il controllo.The name of the entity on which the audit occurred. Sono inclusi gli elementi seguenti:This includes the following:
Oggetti serverServer objects
DatabaseDatabases
Oggetti di databaseDatabase objects
Oggetti dello schemaSchema objects
Ammette i valori Null.Is nullable. Restituisce NULL se l'entità è il server stesso o se il controllo non viene eseguito a livello di oggetto,Returns NULL if the entity is the Server itself or if the audit is not performed at an object level. ad esempio nel caso dell'autenticazione.For example, Authentication.
permission_bitmaskpermission_bitmask varbinary(16)varbinary(16) In alcune azioni, si tratta delle autorizzazioni concesse, negate o revocate.In some actions, this is the permissions that were grant, denied, or revoked.
response_rowsresponse_rows bigintbigint Si applica a: database SQL di Azure e istanza gestitaApplies to: Azure SQL DB and Managed instance

Numero di righe restituite nel set di risultati.Number of rows returned in the result set.
schema_nameschema_name sysnamesysname Contesto dello schema in cui si è verificata l'azione.The schema context in which the action occurred. Ammette i valori Null.Is nullable. Restituisce NULL per i controlli che si verificano all'esterno di uno schema.Returns NULL for audits occurring outside a schema.
sequence_group_idsequence_group_id varbinaryvarbinary Si applica a: solo SQL Server (a partire da 2016)Applies to: SQL Server only (starting with 2016)

Identificatore univocoUnique identifier
sequence_numbersequence_number intint Viene tenuta traccia della sequenza dei record all'interno di un singolo record di controllo con dimensioni troppo elevate per il buffer di scrittura dei controlli.Tracks the sequence of records within a single audit record that was too large to fit in the write buffer for audits. Non ammette i valori Null.Is not nullable.
server_instance_nameserver_instance_name sysnamesysname Nome dell'istanza del server in cui si è verificato il controllo.Name of the server instance where the audit occurred. Viene utilizzato il formato server\istanza standard.The standard server\instance format is used.
server_principal_idserver_principal_id intint ID del contesto dell'account di accesso utilizzato per eseguire l'azione.ID of the login context that the action is performed in. Non ammette i valori Null.Is not nullable.
server_principal_nameserver_principal_name sysnamesysname Account di accesso corrente.Current login. Ammette i valori Null.Is nullable.
server_principal_sidserver_principal_sid varbinaryvarbinary SID dell'account di accesso corrente.Current login SID. Ammette i valori Null.Is nullable.
session_idsession_id smallintsmallint ID della sessione in cui si è verificato l'evento.ID of the session on which the event occurred. Non ammette i valori Null.Is not nullable.
session_server_principal_namesession_server_principal_name sysnamesysname Entità server per la sessione.Server principal for session. Ammette i valori Null.Is nullable.
istruzionestatement nvarchar(4000)nvarchar(4000) Istruzione TSQL, se esiste.TSQL statement if it exists. Ammette i valori Null.Is nullable. Se non applicabile, viene restituito NULL.Returns NULL if not applicable.
succeededsucceeded bitbit Indica se l'azione che ha generato l'evento è riuscita.Indicates whether the action that triggered the event succeeded. Non ammette i valori Null.Is not nullable. Per tutti gli eventi diversi dagli eventi di accesso, riporta solo l'esito del controllo dell'autorizzazione, non l'operazione.For all events other than login events, this only reports whether the permission check succeeded or failed, not the operation.
1 = esito positivo1 = success
0 = esito negativo0 = fail
target_database_principal_idtarget_database_principal_id intint Entità database su cui viene eseguita un'operazione GRANT/DENY/REVOKE.The database principal the GRANT/DENY/REVOKE operation is performed on. Non ammette i valori Null.Is not nullable. Se non applicabile, restituisce 0.Returns 0 if not applicable.
target_database_principal_nametarget_database_principal_name sysnamesysname Utente di destinazione dell'azione.Target user of action. Ammette i valori Null.Is nullable. Se non applicabile, viene restituito NULL.Returns NULL if not applicable.
target_server_principal_idtarget_server_principal_id intint Entità server su cui viene eseguita un'operazione GRANT/DENY/REVOKE.Server principal that the GRANT/DENY/REVOKE operation is performed on. Non ammette i valori Null.Is not nullable. Se non applicabile, restituisce 0.Returns 0 if not applicable.
target_server_principal_nametarget_server_principal_name sysnamesysname Account di accesso di destinazione dell'azione.Target login of action. Ammette i valori Null.Is nullable. Se non applicabile, viene restituito NULL.Returns NULL if not applicable.
target_server_principal_sidtarget_server_principal_sid varbinaryvarbinary SID dell'account di accesso di destinazione.SID of target login. Ammette i valori Null.Is nullable. Se non applicabile, viene restituito NULL.Returns NULL if not applicable.
transaction_idtransaction_id bigintbigint Si applica a: solo SQL Server (a partire da 2016)Applies to: SQL Server only (starting with 2016)

Identificatore univoco per identificare più eventi di controllo in una transazioneUnique identifier to identify multiple audit events in one transaction
user_defined_event_iduser_defined_event_id smallintsmallint Si applica a: SQL Server 2012 (11.x)SQL Server 2012 (11.x) e versioni successive, database SQL di Azure e istanza gestitaApplies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later, Azure SQL DB and Managed instance

ID evento definito dall'utente passato come argomento per sp_audit_write.User defined event id passed as an argument to sp_audit_write. Null per gli eventi di sistema (impostazione predefinita) e diverso da zero per l'evento definito dall'utente.NULL for system events (default) and non-zero for user-defined event. Per ulteriori informazioni, vedere sp_audit_write (Transact-SQL).For more information, see sp_audit_write (Transact-SQL).
user_defined_informationuser_defined_information nvarchar(4000)nvarchar(4000) Si applica a: SQL Server 2012 (11.x)SQL Server 2012 (11.x) e versioni successive, database SQL di Azure e istanza gestitaApplies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later, Azure SQL DB and Managed instance

Utilizzato per registrare eventuali informazioni aggiuntive che l'utente desidera registrare nel log di controllo utilizzando il sp_audit_write stored procedure.Used to record any extra information the user wants to record in audit log by using the sp_audit_write stored procedure.

OsservazioniRemarks

Se l'argomento file_pattern passato a fn_get_audit_file fa riferimento a un percorso o a un file che non esiste o se il file non è un file di controllo, viene restituito il messaggio di errore MSG_INVALID_AUDIT_FILE .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.

AutorizzazioniPermissions

  • SQL Server: è richiesta l'autorizzazione Control Server .SQL Server: Requires the CONTROL SERVER permission.
  • DATABASE SQL di Azure: è richiesta l'autorizzazione Control database .Azure SQL DB: Requires the CONTROL DATABASE permission.
    • Gli amministratori del server possono accedere ai log di controllo di tutti i database nel server.Server admins can access audit logs of all databases on the server.
    • Gli amministratori non server possono accedere ai log di controllo solo dal database corrente.Non server admins can only access audit logs from the current database.
    • I BLOB che non soddisfano i criteri indicati sopra verranno ignorati (un elenco di BLOB ignorati verrà visualizzato nel messaggio di output della query) e la funzione restituirà i log solo dai BLOB per cui è consentito l'accesso.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.

EsempiExamples

  • SQL ServerSQL Server

    In questo esempio viene eseguita la lettura da un file denominato \\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  
    
  • Database SQL di AzureAzure SQL Database

    In questo esempio viene letto da un file denominato 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  
    

    In questo esempio viene letto dallo stesso file precedente, ma con clausole T-SQL aggiuntive (Top, Order bye clausola where per filtrare i record di controllo restituiti dalla funzione):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
    

    Questo esempio legge tutti i log di controllo dai server che iniziano con 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  
    

Per un esempio completo delle modalità di creazione di un controllo, vedere SQL Server Audit (motore di database).For a full example about how to create an audit, see SQL Server Audit (Database Engine).

Per informazioni sulla configurazione del controllo del database SQL di Azure, vedere Introduzione al controllo del database SQL.For information on setting up Azure SQL Database auditing, see Get Started with SQL Database auditing.

Vedere ancheSee 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)
Creazione di un controllo del server e di una specifica del controllo del serverCreate a Server Audit and Server Audit Specification