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 noAzure SQL Data Warehouse noParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse 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 argomentoConvenzioni 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. È di 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. Un asterisco (*) è utilizzabile 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 >\ * : è possibile raccogliere tutti i file si trova nel percorso di controllo.<path>\* - Collect all audit files in the specified location.

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

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

  • Database SQL di Azure:Azure SQL Database:

    Questo argomento viene usato per specificare l'URL blob (tra cui l'endpoint di archiviazione e il contenitore).This argument is used to specify a blob URL (including the storage endpoint and container). Mentre non supporta un carattere jolly asterisco, è possibile usare un prefisso del nome del 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>/<contenitore>/<ServerName>/<DatabaseName> / -consente di raccogliere 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>/<contenitore>/<ServerName>/<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. È di tipo nvarchar(260) .Type is nvarchar(260).

Nota

Il initial_file_name argomento deve contenere voci valide oppure 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

Il audit_record_offset argomento deve contenere voci valide oppure deve contenere l'impostazione predefinita | Valore NULL.The audit_record_offset argument must contain valid entries or must contain either the default | NULL value. È di 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 viene analizzato per eseguire l'escape di caratteri xml non valido, ad esempio '\<', '>', '/', '_x'.The module name will be parsed to escape invalid xml characters like '\<', '>', '/', '_x'. Saranno sottoposti 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 i 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: Azure SQL DB + SQL Server (a partire 2017)Applies to: Azure SQL DB + SQL Server (starting with 2017)

Nome dell'applicazione client che 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 applicano a: Solo SQL ServerAplies 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: Azure SQL DB + SQL Server (a partire 2017)Applies to: Azure SQL DB + SQL Server (starting with 2017)

IP dell'applicazione client di origineSource IP of the client application
connection_idconnection_id GUIDGUID Si applica a: Istanza gestita e database SQL di AzureApplies 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 i database SQL di AzureApplies to: Azure SQL DB only

Tipi di informazioni e le etichette di riservatezza restituite dalla query controllate, basata 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 su Database SQL di Azure individuare i dati e classificazioneLearn 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 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: Istanza gestita e database SQL di AzureApplies to: Azure SQL DB and Managed instance

Durata di esecuzione di 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: Istanza gestita e database SQL di AzureApplies 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 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) tramite SQL Server 2017SQL Server 2017, istanza gestita e database SQL di AzureApplies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017, Azure SQL DB and Managed instance

Id evento definito dall'utente passati come argomento al 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 evento definito dall'utente.NULL for system events (default) and non-zero for user-defined event. Per altre 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) tramite SQL Server 2017SQL Server 2017, istanza gestita e database SQL di AzureApplies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017, Azure SQL DB and Managed instance

Consente di registrare qualsiasi informazione aggiuntiva che l'utente desidera registrare nel log di controllo tramite 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.

NoteRemarks

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

PermissionsPermissions

  • SQL Server: È richiesta l'autorizzazione CONTROL SERVER .SQL Server: Requires the CONTROL SERVER permission.
  • Azure SQL database: Richiede la CONTROL DATABASE l'autorizzazione.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 del server non possono accedere solo i log di controllo dal database corrente.Non server admins can only access audit logs from the current database.
    • I blob che non soddisfano i criteri precedenti verranno ignorati (verrà visualizzato un elenco di BLOB ignorati nel messaggio di output di query), e la funzione restituirà i registri 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 legge 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 legge dal file stesso come illustrato in precedenza, ma con le altre clausole di T-SQL (superiore, ORDER BY, e dove clausola per filtrare i record di controllo restituiti dal 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 dai server che iniziano con di controllo 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 sull'impostazione di controllo del Database SQL di Azure, vedere Introduzione a 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