ALTER SERVER AUDIT (Transact-SQL)

Si applica a:SQL Server Istanza gestita di SQL di Azure

Elimina un oggetto controllo server usando la funzionalità SQL Server Audit. Per altre informazioni, vedere SQL Server Audit (Motore di database).

Convenzioni di sintassi Transact-SQL

Sintassi

ALTER SERVER AUDIT audit_name  
{  
    [ TO { { FILE ( <file_options> [, ...n] ) } | APPLICATION_LOG | SECURITY_LOG } | URL]  
    [ WITH ( <audit_options> [ , ...n] ) ]   
    [ WHERE <predicate_expression> ]  
}  
| REMOVE WHERE  
| MODIFY NAME = new_audit_name  
[ ; ]  
  
<file_options>::=  
{  
      FILEPATH = 'os_file_path'   
    | MAXSIZE = { max_size { MB | GB | TB } | UNLIMITED }   
    | MAX_ROLLOVER_FILES = { integer | UNLIMITED }   
    | MAX_FILES = integer   
    | RESERVE_DISK_SPACE = { ON | OFF }   
}  
  
<audit_options>::=  
{  
      QUEUE_DELAY = integer   
    | ON_FAILURE = { CONTINUE | SHUTDOWN | FAIL_OPERATION }   
    | STATE = = { ON | OFF }   
}  
  
<predicate_expression>::=  
{  
    [NOT ] <predicate_factor>   
    [ { AND | OR } [NOT ] { <predicate_factor> } ]   
    [,...n ]  
}  
  
<predicate_factor>::=   
    event_field_name { = | < > | ! = | > | > = | < | < = } { number | ' string ' }  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

Argomenti

TO { FILE | APPLICATION_LOG | SECURITY |URL}
Determina la posizione della destinazione del controllo. Le opzioni possibili sono un file binario, il registro applicazioni o il registro di sicurezza di Windows.

Importante

In Istanza gestita di SQL di Azure, SQL Audit funziona a livello di server e archivia .xel i file in Archiviazione BLOB di Azure.

FILEPATH = 'os_file_path'
Percorso dell'itinerario 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 il file di controllo. max_size deve essere un valore intero seguito da MB, GB, TB o 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, viene generato l'errore MSG_MAXSIZE_TOO_SMALL. Il valore predefinito è UNLIMITED.

MAX_ROLLOVER_FILES =integer | UNLIMITED
Viene specificato il numero massimo di file da mantenere nel file system. Quando si imposta MAX_ROLLOVER_FILES=0, non esistono limiti al numero di file di rollover che vengono creati. Il valore predefinito è 0. Il numero massimo di file specificabili è 2.147.483.647.

MAX_FILES =integer
Viene specificato il numero massimo di file di controllo che possono essere creati. Quando si raggiunge il limite, non viene eseguito il rollover del primo file. Quando viene raggiunto il limite MAX_FILES, qualsiasi azione che causa la generazione di eventi di controllo aggiuntivi ha esito negativo e viene visualizzato un errore.
Si applica a: SQL Server 2012 (11.x) e versioni successive.

RESERVE_DISK_SPACE = { ON | OFF }
Questa opzione consente di preallocare 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, viene generato l'errore MSG_INVALID_QUEUE_DELAY.

ON_FAILURE = { CONTINUE | SHUTDOWN | FAIL_OPERATION}
Indica se la scrittura eseguita dall'istanza nella destinazione debba continuare, arrestarsi o non riuscire se SQL Server non è in grado di scrivere nel log di controllo.

CONTINUE
Le operazioni di SQL Server continuano. I record di controllo non vengono mantenuti. Il controllo continua nel tentativo di registrare gli eventi e riprende se la condizione di errore viene risolta. Scegliendo di continuare, è possibile consentire un'attività che non è controllata e che quindi potrebbe violare i criteri di sicurezza. Usare questa opzione quando il funzionamento del motore di database è più importante della gestione di un controllo completo.

SHUTDOWN
Forza l'arresto dell'istanza di SQL Server se, per qualsiasi motivo, SQL Server non è in grado di scrivere dati nella destinazione di controllo. L'account di accesso che esegue l'istruzione ALTER deve avere l'autorizzazione SHUTDOWN in SQL Server. Il comportamento di arresto persiste anche se l'autorizzazione SHUTDOWN viene revocata in un secondo momento dall'account di accesso che esegue l'istruzione. Se l'utente non è in possesso di questa autorizzazione, l'istruzione avrà esito negativo e il controllo non verrà modificato. Utilizzare l'opzione quando un errore a livello di controllo potrebbe compromettere la sicurezza o l'integrità del sistema. Per altre informazioni, vedere SHUTDOWN.

FAIL_OPERATION
Le azioni del database non vengono completate se provocano eventi controllati. Le azioni che non provocano eventi controllati possono continuare, ma non si verificano eventi controllati. Il controllo continua nel tentativo di registrare gli eventi e riprende se la condizione di errore viene risolta. Usare questa opzione quando la gestione di un controllo completo è più importante dell'accesso completo al motore di database.
Si applica a: SQL Server 2012 (11.x) e versioni successive.

STATE = { ON | OFF }
Consente di abilitare o disabilitare la raccolta dei record mediante il controllo. La modifica dello stato di un controllo in esecuzione (da ON a OFF) crea una voce che indica l'arresto del controllo, l'entità che ha arrestato il controllo e l'ora in cui si è verificata l'arresto.

MODIFY NAME = new_audit_name
Consente di modificare il nome del controllo. Questa opzione non può essere utilizzata con altre opzioni.

predicate_expression
Viene specificata l'espressione del predicato utilizzata per determinare se un evento deve essere o meno elaborato. Le espressioni del predicato possono essere composte da un massimo di 3000 caratteri, pertanto gli argomenti di tipo stringa risultano limitati.
Si applica a: SQL Server 2012 (11.x) e versioni successive.

event_field_name
Nome del campo relativo all'evento che consente di identificare l'origine del predicato. I campi del controllo sono descritti in sys.fn_get_audit_file (Transact-SQL). È possibile controllare tutti i campi eccetto file_name e audit_file_offset.
Si applica a: SQL Server 2012 (11.x) e versioni successive.

number
Qualsiasi tipo numerico incluso decimal. Le limitazioni sono la mancanza di memoria fisica disponibile o un numero troppo grande per essere rappresentato come un numero intero a 64 bit.
Si applica a: SQL Server 2012 (11.x) e versioni successive.

' string '
Stringa ANSI o Unicode come richiesto dal paragone del predicato. Non viene eseguita alcuna conversione del tipo di stringa implicita per le funzioni del paragone del predicato. Il passaggio del tipo non corretto comporta un errore.
Si applica a: SQL Server 2012 (11.x) e versioni successive.

Osservazioni:

È necessario specificare almeno una delle clausole TO, WITH o MODIFY NAME quando si chiama ALTER AUDIT.

Per apportare modifiche a un controllo è necessario impostare lo stato del controllo sull'opzione OFF. Se l'istruzione ALTER AUDIT viene eseguita quando è abilitato un controllo con qualsiasi altra opzione diversa da STATE=OFF, viene visualizzato il messaggio di errore MSG_NEED_AUDIT_DISABLED.

È possibile aggiungere, modificare e rimuovere specifiche del controllo senza arrestare il controllo stesso.

Non è possibile modificare il GUID di un controllo dopo che il controllo è stato creato.

Non è possibile usare l'istruzione ALTER SERVER AUDIT nell'ambito di una transazione utente.

Autorizzazioni

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

Esempi

R. Modifica del nome di un controllo del server

Nell'esempio seguente il nome del controllo del server HIPAA_Audit viene modificato in HIPAA_Audit_Old.

USE master  
GO  
ALTER SERVER AUDIT HIPAA_Audit  
WITH (STATE = OFF);  
GO  
ALTER SERVER AUDIT HIPAA_Audit  
MODIFY NAME = HIPAA_Audit_Old;  
GO  
ALTER SERVER AUDIT HIPAA_Audit_Old  
WITH (STATE = ON);  
GO  

B. Modifica della destinazione di un controllo del server

Nell'esempio seguente il controllo del server denominato HIPAA_Audit viene modificato in una destinazione file.

USE master  
GO  
ALTER SERVER AUDIT HIPAA_Audit  
WITH (STATE = OFF);  
GO  
ALTER SERVER AUDIT HIPAA_Audit  
TO FILE (FILEPATH ='\\SQLPROD_1\Audit\',  
          MAXSIZE = 1000 MB,  
          RESERVE_DISK_SPACE=OFF)  
WITH (QUEUE_DELAY = 1000,  
       ON_FAILURE = CONTINUE);  
GO  
ALTER SERVER AUDIT HIPAA_Audit  
WITH (STATE = ON);  
GO  

C. Modifica di una clausola WHERE del controllo di un server

L'esempio seguente modifica la clausola WHERE creata nell'esempio C in CREATE SERVER AUDIT (Transact-SQL). La nuova clausola WHERE consente di filtrare l'evento definito dall'utente, se pari a 27.

ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = OFF)  
GO  
ALTER SERVER AUDIT [FilterForSensitiveData]  
WHERE user_defined_event_id = 27;  
GO  
ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = ON);  
GO  

D. Rimozione di una clausola WHERE

Nell'esempio seguente viene rimossa un'espressione del predicato della clausola WHERE.

ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = OFF)  
GO  
ALTER SERVER AUDIT [FilterForSensitiveData]  
REMOVE WHERE;  
GO  
ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = ON);  
GO  

E. Ridenominazione di un controllo del server

Nell'esempio seguente il nome del controllo del server viene modificato da FilterForSensitiveData a AuditDataAccess.

ALTER SERVER AUDIT [FilterForSensitiveData] WITH (STATE = OFF)  
GO  
ALTER SERVER AUDIT [FilterForSensitiveData]  
MODIFY NAME = AuditDataAccess;  
GO  
ALTER SERVER AUDIT [AuditDataAccess] WITH (STATE = ON);  
GO  

Vedi anche

DROP SERVER AUDIT (Transact-SQL)
CREATE edizione Standard RVER AUDIT SPECIFICATION (Transact-SQL)
ALTER edizione Standard RVER AUDIT SPECIFICATION (Transact-SQL)
DROP edizione Standard RVER AUDIT SPECIFICATION (Transact-SQL)
CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
ALTER DATABA edizione Standard AUDIT SPECIFICATION (Transact-SQL)
DROP DATABA edizione Standard AUDIT SPECIFICATION (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL)
sys.fn_get_audit_file (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)
Creazione di un controllo del server e di una specifica del controllo del server