Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
Si applica a:Azure SQL Database
Warehouse in Microsoft Fabric
Database SQL in Microsoft Fabric
La sys.fn_get_audit_file_v2 funzione di sistema è progettata per recuperare i dati di log di audit con maggiore efficienza rispetto al suo predecessore, sys.fn_get_audit_file. La funzione introduce il filtro basato sul tempo sia a livello di file che di record, offrendo miglioramenti significativi delle prestazioni, in particolare per le query destinate a intervalli di tempo specifici.
Informazioni di restituzione da un file di audit creato da un audit del server. Per altre informazioni, vedere SQL Server Audit (Motore di database).
- Per informazioni sulla configurazione del controllo database SQL di Azure, vedere Introduzione al controllo database SQL.
- Per informazioni su come configurare l'audit di Fabric Data Warehouse, consulta i Log di Audit SQL in Fabric Data Warehouse.
- Per informazioni sulla configurazione di database SQL in audit Fabric, consulta SQL Audit nel database SQL in Fabric.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
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 } )
Argomenti
file_pattern
Si applica a: solo database SQL di Azure
Specifica la directory o il percorso e il nome di file per il set di file di controllo da leggere. file_pattern è nvarchar(260).
Il passaggio di un percorso senza un modello di nome file genera un errore.
Questo argomento viene usato per specificare un URL BLOB (inclusi l'endpoint di archiviazione e il contenitore). Anche se non supporta un carattere jolly asterisco, è possibile usare un prefisso del nome di file parziale (BLOB) anziché il nome completo del BLOB per raccogliere più file (BLOB) che iniziano con questo prefisso. Ad esempio:
<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/: raccoglie tutti i file di controllo (BLOB) per il database specifico.<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/<AuditName>/<CreationDate>/<FileName>.xel: raccoglie un file di controllo specifico (BLOB).
initial_file_name
Si applica a: solo database SQL di Azure
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. initial_file_name è nvarchar(260).
L'argomento initial_file_name deve contenere voci valide o deve contenere il default valore o NULL .
audit_record_offset
Si applica a: solo database SQL di Azure
Specifica un percorso noto con il file specificato per il initial_file_name. Quando viene utilizzato questo argomento, la funzione inizia a leggere il primo record del buffer immediatamente dopo l'offset specificato.
L'argomento audit_record_offset deve contenere voci valide o deve contenere il default valore o NULL .
audit_record_offset è bigint.
start_time
Ora di inizio per filtrare i log. I record prima di questa ora vengono esclusi.
end_time
Ora di fine per filtrare i log. I record dopo questa volta vengono esclusi.
Tabella restituita
Nella tabella seguente viene descritto il contenuto del file di controllo restituito da questa funzione.
| Nome colonna | Tipo | Descrizione |
|---|---|---|
event_time |
datetime2 | Data e ora di attivazione dell'azione controllabile. Non ammette i valori NULL. |
sequence_number |
int | 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. Non ammette i valori NULL. |
action_id |
varchar(4) | ID dell'azione. Non ammette i valori NULL. |
succeeded |
bit | Indica se l'azione che ha generato l'evento è riuscita. Non ammette i valori NULL. Per tutti gli eventi diversi dagli eventi di accesso, riporta solo l'esito del controllo dell'autorizzazione, non l'operazione.1 = esito positivo0 = fallimento |
permission_bitmask |
varbinary(16) | In alcune azioni, questa maschera di bit è le autorizzazioni concesse, negate o revocate. |
is_column_permission |
bit | Flag che indica se si tratta di un'autorizzazione a livello di colonna. Non ammette i valori NULL. Restituisce 0 quando l'oggettopermission_bitmask = 0 .1 = vero0 = falso |
session_id |
smallint | ID della sessione in cui si è verificato l'evento. Non ammette i valori NULL. |
server_principal_id |
int | ID del contesto dell'account di accesso utilizzato per eseguire l'azione. Non ammette i valori NULL. |
database_principal_id |
int | ID del contesto dell'utente del database in cui viene eseguita l'azione. Non ammette i valori NULL. Restituisce 0 se non si applica. ad esempio nel caso di un'operazione server, restituisce 0. |
target_server_principal_id |
int | Entità server su cui viene eseguita l'operazioneGRANT/DENY/REVOKE. Non ammette i valori NULL. Restituisce 0 se non applicabile. |
target_database_principal_id |
int | Entità database su cui viene eseguita l'operazioneGRANT/DENY/REVOKE. Non ammette i valori NULL. Restituisce 0 se non applicabile. |
object_id |
int | ID dell'entità in cui si è verificato il controllo, che include gli oggetti seguenti: - Oggetti server -Banche dati - Oggetti di database - Oggetti schema Non ammette i valori NULL. Restituisce 0 se l'entità è il server stesso o se il controllo non viene eseguito a livello di oggetto. ad esempio nel caso dell'autenticazione. |
class_type |
varchar(2) | Tipo di entità controllabile in cui si verifica il controllo. Non ammette i valori NULL. |
session_server_principal_name |
sysname | Entità server per la sessione. Ammette valori Null. Restituisce l'identità dell'account di accesso originale connesso all'istanza del motore di database nel caso in cui siano presenti opzioni di contesto esplicite o implicite. |
server_principal_name |
sysname | Account di accesso corrente. Ammette valori Null. |
server_principal_sid |
varbinary | SID dell'account di accesso corrente. Ammette valori Null. |
database_principal_name |
sysname | Utente corrente. Ammette valori Null. Restituisce NULL se non disponibile. |
target_server_principal_name |
sysname | Account di accesso di destinazione dell'azione. Ammette valori Null. Restituisce NULL se non applicabile. |
target_server_principal_sid |
varbinary | SID dell'account di accesso di destinazione. Ammette valori Null. Restituisce NULL se non applicabile. |
target_database_principal_name |
sysname | Utente di destinazione dell'azione. Ammette valori Null. Restituisce NULL se non applicabile. |
server_instance_name |
sysname | Nome dell'istanza del server in cui si è verificato il controllo. Viene utilizzato il formato standard server\instance . |
database_name |
sysname | Contesto del database in cui si è verificata l'azione. Ammette valori Null. Restituisce NULL per i controlli che si verificano a livello di server. |
schema_name |
sysname | Contesto dello schema in cui si è verificata l'azione. Ammette valori Null. Restituisce NULL per i controlli che si verificano all'esterno di uno schema. |
object_name |
sysname | Nome dell'entità in cui si è verificato il controllo, che include gli oggetti seguenti: - Oggetti server -Banche dati - Oggetti di database - Oggetti schema Ammette valori Null. Restituisce NULL se l'entità è il server stesso o se il controllo non viene eseguito a livello di oggetto. ad esempio nel caso dell'autenticazione. |
statement |
nvarchar(4000) | Istruzione Transact-SQL, se esistente. Ammette valori Null. Restituisce NULL se non applicabile. |
additional_information |
nvarchar(4000) | Le informazioni univoche applicabili solo a un singolo evento vengono restituite in formato XML. Alcune azioni controllabili contengono questo tipo di informazioni. Un livello dello stack T-SQL viene visualizzato in formato XML per le azioni con stack T-SQL associato. Il formato XML è: <tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack>frame nest_level indica il livello di annidamento corrente del frame. Il nome del modulo è rappresentato in tre parti (database_name, schema_namee object_name). Il nome del modulo viene analizzato per eseguire l'escape di caratteri XML non validi, ad esempio <, >/, . _x Sono fuggiti come _xHHHH_.
HHHH Indica il codice UCS-2 esadecimale a quattro cifre per il carattere. Ammette valori Null. Restituisce NULL quando non sono presenti informazioni aggiuntive segnalate dall'evento. |
file_name |
varchar(260) | Percorso e nome del file di log di controllo da cui proviene il record. Non ammette i valori NULL. |
audit_file_offset |
bigint | Offset del buffer nel file che contiene il record di controllo. Non ammette i valori NULL. |
user_defined_event_id |
smallint | ID evento definito dall'utente passato come argomento a sp_audit_write.
NULL per gli eventi di sistema (impostazione predefinita) e non zero per l'evento definito dall'utente. Per altre informazioni, vedere sp_audit_write (Transact-SQL). |
user_defined_information |
nvarchar(4000) | Utilizzato per registrare eventuali informazioni aggiuntive che l'utente desidera registrare nel log di controllo usando la sp_audit_write stored procedure. |
audit_schema_version |
int | Sempre 1. |
sequence_group_id |
varbinary | Identificatore unico.< |
transaction_id |
bigint | Identificatore univoco per identificare più eventi di controllo in una transazione. |
client_ip |
nvarchar(128) | IP di origine dell'applicazione client. |
application_name |
nvarchar(128) | Nome dell'applicazione client che ha eseguito l'istruzione che ha causato l'evento di controllo. |
duration_milliseconds |
bigint | Durata dell'esecuzione delle query in millisecondi. |
response_rows |
bigint | Numero di righe restituite nel set di risultati.< |
affected_rows |
bigint | Numero di righe interessate dall'istruzione eseguita. |
connection_id |
uniqueidentifier | ID della connessione nel server. |
data_sensitivity_information |
nvarchar(4000) | Tipi di informazioni ed etichette di riservatezza restituite dalla query di controllo, in base alle colonne classificate nel database. Altre informazioni su database SQL di Azure individuazione e classificazione dei dati. |
host_name |
nvarchar(128) | Nome host del computer client. |
session_context |
nvarchar(4000) | Coppie chiave-valore che fanno parte del contesto di sessione corrente. |
client_tls_version |
bigint | Versione minima di TLS supportata dal client. |
client_tls_version_name |
nvarchar(128) | Versione minima di TLS supportata dal client. |
database_transaction_id |
bigint | ID transazione della transazione corrente nella sessione corrente. |
ledger_start_sequence_number |
bigint | Numero di sequenza di un'operazione all'interno di una transazione che ha creato una versione di riga. |
external_policy_permissions_checked |
nvarchar(4000) | Informazioni correlate al controllo delle autorizzazioni di autorizzazione esterna, quando viene generato un evento di controllo e vengono valutati i criteri di autorizzazione esterni di Purview. |
obo_middle_tier_app_id |
varchar(120) | L'ID dell'applicazione di livello intermedio che si collega tramite accesso on-behalf-of (OBO). Ammette valori Null. Restituisce NULL se la richiesta non viene effettuata usando l'accesso OBO. |
is_local_secondary_replica |
bit |
True se il record di controllo ha origine da una replica secondaria locale di sola lettura, False in caso contrario. |
Miglioramenti apportati alla sys.fn_get_audit_file
La sys.fn_get_audit_file_v2 funzione offre un miglioramento sostanziale rispetto al sys.fn_get_audit_file precedente introducendo un filtro efficiente basato sul tempo sia a livello di file che di record. Questa ottimizzazione è particolarmente utile per le query destinate a intervalli di tempo più piccoli e consente di mantenere le prestazioni in ambienti multi-database.
Filtro a doppio livello
Filtro a livello di file: la funzione filtra prima i file in base all'intervallo di tempo specificato, riducendo il numero di file da analizzare.
Filtro a livello di record: applica quindi il filtro all'interno dei file selezionati per estrarre solo i record pertinenti.
Miglioramenti delle prestazioni
I miglioramenti delle prestazioni dipendono principalmente dal tempo di rollover dei file BLOB e dall'intervallo di tempo di query. Supponendo una distribuzione uniforme dei record di controllo:
Carico ridotto: riducendo al minimo il numero di file e record da analizzare, riduce il carico nel sistema e migliora i tempi di risposta delle query.
Scalabilità: consente di mantenere le prestazioni anche quando aumenta il numero di database, anche se il miglioramento netto potrebbe essere meno pronunciato negli ambienti con un numero elevato di database.
Osservazioni:
Se l'argomento file_pattern passato a fa riferimento a un percorso o a fn_get_audit_file_v2 un file che non esiste o se il file non è un file di controllo, viene restituito il MSG_INVALID_AUDIT_FILE messaggio di errore.
La fn_get_audit_file_v2 funzione non può essere utilizzata quando viene creato l'audit con le APPLICATION_LOGopzioni, SECURITY_LOG, o EXTERNAL_MONITOR opzioni.
Attualmente in Fabric Data Warehouse non puoi accedere ai singoli file, solo alla cartella di audit. I seguenti argomenti non sono supportati per l'audit SQL su un elemento warehouse: file_pattern, initial_file_name, audit_record_offset.
Autorizzazioni
Permessi richiesti in Azure SQL Database
È necessaria l'autorizzazione CONTROL DATABASE.
Gli amministratori del server possono accedere ai log di controllo di tutti i database nel server.
Gli amministratori non server possono accedere solo ai log di controllo dal database corrente.
I BLOB che non soddisfano i criteri precedenti vengono ignorati (nel messaggio di output della query viene visualizzato un elenco di BLOB ignorati). La funzione restituisce i log solo dai BLOB per cui è consentito l'accesso.
Permessi richiesti nel database SQL di Fabric
Per gestire l'audit utilizzando i ruoli workspace di Fabric, gli utenti devono essere membri del ruolo di Contributor di workspace di Fabric o permessi superiori. Per gestire il controllo con le autorizzazioni SQL:
- Per configurare il controllo del database, gli utenti devono disporre dell'autorizzazione ALTER ANY DATABASE AUDIT.
- Per visualizzare i log di controllo tramite T-SQL, gli utenti devono disporre dell'autorizzazione VIEW DATABASE SECURITY AUDIT.
Per ulteriori informazioni, vedi Audit nel database SQL di Fabric.
Permessi richiesti in Fabric Data Warehouse
Gli utenti devono avere il permesso dell'oggetto Audit Fabric. Per altre informazioni, vedere Permissions.
Esempi
A. Visualizza i log di audit SQL per Azure SQL Database
In questo esempio vengono recuperati i log di controllo da una posizione Archiviazione BLOB di Azure specifica, filtrando i record tra 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. Visualizza i log di audit SQL per Fabric Data Warehouse
Questo esempio recupera i log di audit dalla cartella OneLake allineata con lo spazio di lavoro e il warehouse attuali, filtrando i record tra 2023-11-17T08:40:40Z e 2023-11-17T09:10:40Z.
Nel portale Tessuto, recupera il tuo workspaceID e warehouseID:
-
<workspaceID>: Visita il tuo spazio di lavoro nel portale Fabric. Trova il GUID dello spazio di lavoro nell'URL dopo la/groups/sezione, oppure eseguendoSELECT @@SERVERNAMEin un magazzino esistente. Se il tuo/groups/URL è seguito da/me/, stai usando lo spazio di lavoro predefinito, e attualmente SQL Audit per Fabric Data Warehouse non è supportato nello spazio di lavoro predefinito. -
<warehouseID>: Visita il tuo magazzino nel portale Fabric. Trova l'ID del magazzino nell'URL dopo la/warehouses/sezione.
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. Visualizza i log di audit SQL per database SQL in Microsoft Fabric
Questo esempio recupera i log di audit da OneLake in Microsoft Fabric, tra 2025-11-17T08:40:40Z e 2025-11-17T09:10:40Z.
Nel seguente script, devi fornire il tuo ID workspace Microsoft Fabric e l'ID del database. Entrambi si trovano nell'URL del portale Fabric. Ad esempio: https://fabric.microsoft.com/groups/<fabric workspace id>/sqldatabases/<fabric sql database id>. La prima stringa di identificatore unico nell'URL è l'ID dello spazio di lavoro Fabric, e la seconda stringa di identificatore unico è l'ID del database SQL.
- Sostituire
<fabric_workspace_id>con l'ID dell'area di lavoro Fabric. È possibile trovare facilmente l'ID di un'area di lavoro nell'URL, ovvero la stringa univoca all'interno di due/caratteri dopo/groups/nella finestra del browser. - Sostituire
<fabric sql database id>con il database SQL nell'ID del database Fabric. È possibile trovare facilmente l'ID dell'elemento di database nell'URL, ovvero la stringa univoca all'interno di due/caratteri dopo/sqldatabases/nella finestra del browser.
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')
Ulteriori informazioni
Viste del catalogo di sistema:
- sys.specifiche_di_audit_del_server (Transact-SQL)
- sys.server_audit_specification_details (Transact-SQL)
- sys.database_audit_specifications (Transact-SQL)
- sys.database_audit_specification_details (Transact-SQL)
Transact-SQL:
- CREATE SERVER AUDIT (Transact-SQL)
- ALTER SERVER AUDIT (Transact-SQL)
- DROP AUDIT SERVER (Transact-SQL)
- CREA LA SPECIFICA DI AUDIT SERVER (Transact-SQL)
- ALTER SPECIFICA DI VERIFICA DEL SERVER (Transact-SQL)
- SPECIFICA DI AUDIT DEL SERVER DROP (Transact-SQL)
- CREA UNA SPECIFICAZIONE DI VERIFICA DEL DATABASE (Transact-SQL)
- MODIFICA DELLA SPECIFICA DI AUDIT DEL DATABASE (Transact-SQL)
- DROP SPECIFICA DI AUDIT DEL DATABASE (Transact-SQL)
- ALTERA AUTORIZZAZIONE (Transact-SQL)
Contenuto correlato
- Creazione di un controllo del server e di una specifica del controllo del server
- 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)
- Inizia con l'audit di database SQL
- Log di audit SQL in Fabric Data Warehouse