CREATE SERVER AUDIT (Transact-SQL)

Crea un oggetto controllo del server utilizzando SQL Server Audit. Per ulteriori informazioni, vedere Informazioni su SQL Server Audit.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

CREATE SERVER AUDIT audit_name
{
    TO { [ FILE (<file_options> [ , ...n ]) ] | APPLICATION_LOG | SECURITY_LOG }
    [ WITH ( <audit_options> [ , ...n ] ) ] 
}
[ ; ]
<file_options>::=
{
       FILEPATH ='os_file_path'
    [ , MAXSIZE = { max_size { MB | GB | TB } | UNLIMITED } ]
    [ , MAX_ROLLOVER_FILES = { integer | UNLIMITED } ]
    [ , RESERVE_DISK_SPACE = { ON | OFF } ] 
}
  
<audit_options>::=
{
    [  QUEUE_DELAY =integer ]
    [ , ON_FAILURE = { CONTINUE | SHUTDOWN } ]
    [ , AUDIT_GUID =uniqueidentifier ]
}

Argomenti

  • TO { FILE | APPLICATION_LOG | SECURITY }
    Determina la posizione della destinazione del controllo. Le opzioni possibili sono un file binario, il registro applicazioni di Windows o il registro di sicurezza di Windows. Se non si configurano impostazioni aggiuntive in Windows, non sarà possibile scrivere nel registro di sicurezza di Windows con SQL Server. Per ulteriori informazioni, vedere Procedura: Scrittura di eventi di controllo del server nel registro di protezione.

    Nota

    La scrittura nel registro di sicurezza non è disponibile in Windows XP.

  • FILEPATH ='os_file_path'
    Percorso del log di controllo. Il nome del file viene generato in base al nome e al GUID del controllo.

  • MAXSIZE = { max_size }
    Specifica le dimensioni massime consentite per l'aumento di dimensioni del file di controllo. Il valore max_size deve essere un valore integer seguito da MB, GB, TB, or UNLIMITED. Il valore minimo che è possibile specificare per max_size è 2 MB, mentre il valore massimo è 2.147.483.647 TB. Se si specifica UNLIMITED, le dimensioni del file possono aumentare fino a quando non si esaurisce lo spazio su disco. Se si specifica un valore minore di 2 MB, verrà generato l'errore MSG_MAXSIZE_TOO_SMALL. Il valore predefinito è UNLIMITED.

  • MAX_ROLLOVER_FILES ={ integer | UNLIMITED }
    Indica il numero massimo di file da mantenere nel file system oltre al file corrente. Il valore MAX_ROLLOVER_FILES deve essere di tipo integer o UNLIMITED. Il valore predefinito è UNLIMITED. Questo parametro viene valutato ogni volta che il controllo viene riavviato (quando l'istanza del Motore di database viene riavviata o quando il controllo viene disattivato e quindi riattivato) oppure quando è necessario un nuovo file perché è stato raggiunto il valore MAXSIZE. Quando  MAX_ROLLOVER_FILES viene valutato, se il numero di file supera l'impostazione di MAX_ROLLOVER_FILES, viene eliminato il file meno recente. Di conseguenza, quando l'impostazione di MAX_ROLLOVER_FILES è 0, viene creato un nuovo file ogni volta che l'impostazione di MAX_ROLLOVER_FILES viene valutata. Un solo file viene eliminato automaticamente quando viene valutata l'impostazione di MAX_ROLLOVER_FILES, pertanto quando il valore di MAX_ROLLOVER_FILES viene ridotto, il numero di file non verrà ridotto, a meno che i file obsoleti non vengano eliminati manualmente. Il numero massimo di file che è possibile specificare è 2.147.483.647.

  • RESERVE_DISK_SPACE = { ON | OFF }
    Questa opzione prealloca il file sul disco in base al valore MAXSIZE. Viene applicata solo se MAXSIZE non è uguale a UNLIMITED. Il valore predefinito è OFF.

  • QUEUE_DELAY =integer
    Specifica la quantità di tempo in millisecondi che può trascorrere prima che venga forzata l'esecuzione delle azioni di controllo. Il valore 0 indica un recapito sincrono. Il valore minimo di ritardo di query che è possibile impostare è 1000 (1 secondo). Tale valore è quello predefinito. Il valore massimo è 2.147.483.647 (2.147.483,647 secondi o 24 giorni, 20 ore, 31 minuti e 23,647 secondi). Se si specifica un numero non valido, verrà generato l'errore MSG_INVALID_QUEUE_DELAY.

  • ON_FAILURE = { CONTINUE | SHUTDOWN }
    Indica se l'istanza che scrive nella destinazione deve continuare oppure arrestarsi se la destinazione non può eseguire la scrittura. L'account di accesso che esegue questa operazione deve disporre dell'autorizzazione SHUTDOWN. In caso contrario questa funzione non verrà eseguita e verrà generato il messaggio di errore MSG_NO_SHUTDOWN_PERMISSION. Il valore predefinito è CONTINUE.

  • AUDIT_GUID =uniqueidentifier
    Per supportare alcuni tipi di scenario, ad esempio il mirroring del database, a un controllo deve essere associato un GUID specifico corrispondente a quello presente nel database con mirroring. Dopo che il controllo è stato creato, il GUID non può essere modificato.

Osservazioni

Quando viene creato un controllo del server, il relativo stato è disabilitato.

L'istruzione CREATE SERVER AUDIT è nell'ambito di una transazione. L'esecuzione del rollback della transazione comporta il rollback anche per l'istruzione.

Autorizzazioni

Per creare, modificare o eliminare un controllo del server, le entità devono disporre dell'autorizzazione ALTER ANY SERVER AUDIT o CONTROL SERVER.

Quando si salvano informazioni di controllo in un file, per contribuire a impedirne l'alterazione, limitare l'accesso al percorso del file.

Esempi

A. Creazione di un controllo del server con un file come destinazione

Nell'esempio seguente viene creato un controllo del server denominato HIPPA_Audit con un file binario come destinazione e nessuna opzione.

CREATE SERVER AUDIT HIPAA_Audit
    TO FILE ( FILEPATH ='\\SQLPROD_1\Audit\' );

B. Creazione di un controllo del server con il registro applicazioni di Windows come destinazione e con opzioni

Nell'esempio seguente viene creato un controllo del server denominato HIPPA_Audit con il registro applicazioni di Windows come destinazione. Nella coda viene eseguita un'operazione di scrittura al secondo e il motore di SQL Server viene arrestato in caso di errore.

CREATE SERVER AUDIT HIPAA_Audit
    TO APPLICATION_LOG
    WITH ( QUEUE_DELAY = 1000,  ON_FAILURE = SHUTDOWN);

Vedere anche

Riferimento

Concetti