sys.fn_get_audit_file (Transact-SQL)

Restituisce informazioni da un file di controllo creato da un controllo del server. Per ulteriori informazioni, vedere SQL Server Audit (Database Engine).

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

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

Argomenti

  • file_pattern
    Specifica la directory o il percorso e il nome di file per il set di file di controllo da leggere. Il tipo è nvarchar(260). 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. È possibile utilizzare un solo asterisco (*) per raccogliere più file da un set di file di controllo, ad esempio:

    • <path>\*: raccoglie tutti i file di controllo presenti nel percorso specificato.

    • <percorso>\LoginsAudit_{GUID}: raccoglie tutti i file di controllo con la coppia nome e GUID specificata.

    • <path>\LoginsAudit_{GUID}_00_29384.sqlaudit: raccoglie un file di controllo specifico.

    [!NOTA]

    Se si passa un percorso senza un criterio del nome di file, verrà generato un errore.

  • initial_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. Il tipo è nvarchar(260).

    [!NOTA]

    L'argomento initial_file_name deve contenere voci valide oppure il valore predefinito | NULL.

  • audit_record_offset
    Specifica un percorso noto con il file specificato per l'argomento initial_file_name. Quando viene utilizzato questo argomento, la funzione avvierà la lettura dal primo record del buffer immediatamente successivo all'offset specificato.

    [!NOTA]

    L'argomento audit_record_offset deve contenere voci valide oppure il valore predefinito | NULL. Il tipo è bitint.

Tabelle restituite

Nella tabella seguente viene descritto il contenuto del file di controllo che può essere restituito da questa funzione.

Nome colonna

Tipo

Descrizione

event_time

datetime2

Data e ora di attivazione dell'azione controllabile. Non ammette 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 valori Null.

action_id

varchar(4)

ID dell'azione. Non ammette valori Null.

succeeded

bit

1 = esito positivo

0 = esito negativo

Indica se l'azione che ha generato l'evento è riuscita. Non ammette valori Null. Per tutti gli eventi diversi dagli eventi di accesso, riporta solo l'esito del controllo dell'autorizzazione, non l'operazione.

permission_bitmask

varbinary(16)

In alcune azioni, si tratta delle autorizzazioni concesse, negate o revocate.

is_column_permission

bit

1 = True

0 = False

Flag che indica se si tratta di un'autorizzazione a livello di colonna. Non ammette valori Null. Restituisce 0 quando permission_bitmask = 0.

session_id

smallint

ID della sessione in cui è stato generato l'evento. Non ammette valori Null.

server_principal_id

int

ID del contesto dell'account di accesso utilizzato per eseguire l'azione. Non ammette valori Null.

database_principal_id

int

ID del contesto dell'utente del database in cui viene eseguita l'azione. Non ammette valori Null. Se non applicabile, ad esempio nel caso di un'operazione server, restituisce 0.

target_server_principal_id

int

Entità server su cui viene eseguita un'operazione GRANT/DENY/REVOKE. Non ammette valori Null. Se non applicabile, restituisce 0.

target_database_principal_id

int

Entità database su cui viene eseguita un'operazione GRANT/DENY/REVOKE. Non ammette valori Null. Se non applicabile, restituisce 0.

object_id

int

ID dell'entità in cui si è verificato il controllo. Sono inclusi gli elementi seguenti:

  • Oggetti server

  • Database

  • Oggetti di database

  • Oggetti dello schema

Non ammette 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 valori Null.

session_server_principal_name

sysname

Entità server per la sessione. Ammette valori Null.

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. Se non disponibile, restituisce NULL.

target_server_principal_name

sysname

Account di accesso di destinazione dell'azione. Ammette valori Null. Se non applicabile, viene restituito NULL.

target_server_principal_sid

varbinary

SID dell'account di accesso di destinazione. Ammette valori Null. Se non applicabile, viene restituito NULL.

target_database_principal_name

sysname

Utente di destinazione dell'azione. Ammette valori Null. Se non applicabile, viene restituito NULL.

server_instance_name

sysname

Nome dell'istanza del server in cui si è verificato il controllo. Viene utilizzato il formato server\istanza standard.

database_name

sysname

Contesto di database in cui si è verificata l'azione. Ammette valori Null. Restituisce NULL per controlli che si verificano a livello di server.

schema_name

sysname

Contesto relativo allo schema in cui si è verificata l'azione. Ammette valori Null. Restituisce NULL per controlli che si verificano all'esterno di uno schema.

object_name

sysname

Nome dell'entità in cui si è verificato il controllo. Sono inclusi gli elementi seguenti:

  • Oggetti server

  • Database

  • Oggetti di database

  • Oggetti dello 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 TSQL, se esiste. Ammette valori Null. Se non applicabile, viene restituito NULL.

additional_information

nvarchar(4000)

Le informazioni univoche applicabili solo a un singolo evento vengono restituite in formato XML. Questo tipo di informazioni è contenuto in un numero ridotto di azioni controllabili.

Un livello di stack TSQL sarà visualizzato in formato XML per le azioni associate a tale stack. Il formato XML sarà:

<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. Il nome del modulo viene rappresentato in un formato composto da tre parti (nome_database, nome_schema e nome_oggetto) e sarà analizzato per eseguire l'escape di caratteri xml non validi quali '<', '>', '/', '_x'. Saranno sottoposti a escape come _xHHHH_, dove HHHH rappresenta 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 valori Null.

audit_file_offset

bigint

Offset del buffer nel file che contiene il record di controllo. Non ammette valori Null.

user_defined_event_id

smallint

ID dell'evento definito dall'utente passato come argomento a sp_audit_write. NULL per gli eventi di sistema (impostazione predefinita) e diverso da zero per evento definito dall'utente. Per ulteriori informazioni, vedere sp_audit_write (Transact-SQL).

user_defined_information

nvarchar(4000)

Utilizzato per registrare qualsiasi informazione aggiuntiva che l'utente desidera registrare nel log di controllo tramite la stored procedure sp_audit_write.

Osservazioni

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 è di controllo, verrà restituito il messaggio di errore MSG_INVALID_AUDIT_FILE.

Autorizzazioni

È necessaria l'autorizzazione CONTROL SERVER.

Esempi

In questo esempio viene eseguita la lettura da un file denominato \\serverName\Audit\HIPPA_AUDIT.sqlaudit.

SELECT * FROM sys.fn_get_audit_file ('\\serverName\Audit\HIPPA_AUDIT.sqlaudit',default,default);
GO

Per un esempio completo delle modalità di creazione di un controllo, vedere SQL Server Audit (Database Engine).

Vedere anche

Riferimento

CREATE SERVER AUDIT (Transact-SQL)

ALTER SERVER AUDIT (Transact-SQL)

DROP SERVER AUDIT (Transact-SQL)

CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)

ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)

DROP SERVER AUDIT SPECIFICATION (Transact-SQL)

CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)

ALTER DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)

DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)

ALTER AUTHORIZATION (Transact-SQL)

sys.server_audits (Transact-SQL)

sys.server_file_audits (Transact-SQL)

sys.server_audit_specifications (Transact-SQL)

sys.server_audit_specification_details (Transact-SQL)

sys.database_audit_specifications (Transact-SQL)

sys.database_audit_specification_details (Transact-SQL)

sys.dm_server_audit_status (Transact-SQL)

sys.dm_audit_actions (Transact-SQL)

sys.dm_audit_class_type_map (Transact-SQL)

Concetti

Creazione di un controllo del server e di una specifica del controllo del server