ALTER SERVER AUDIT (Transact-SQL)

Si applica a:SQL ServerIstanza 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 relative alla 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' }

Argomenti

TO { FILE | APPLICATION_LOG | SICUREZZA | 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. Il valore max_size deve essere un intero seguito da MB, GB, TB, o UNLIMITED. La dimensione minima che puoi specificare per max_size è 2 MB e la massima è 2.147.483.647 TB. Quando UNLIMITED viene specificato, il file cresce fino a riempirsi del disco. Specificare un valore inferiore a 2 MB aumenta l'errore MSG_MAXSIZE_TOO_SMALL . Il valore predefinito è UNLIMITED.

MAX_ROLLOVER_FILES = intero | ILLIMITATO

Viene specificato il numero massimo di file da mantenere nel file system. Quando l'impostazione di MAX_ROLLOVER_FILES = 0, non viene imposto alcun limite al numero di file di rollover creati. Il valore predefinito è 0. Il numero massimo di file specificabili è 2.147.483.647.

MAX_FILES = numero intero

Viene specificato il numero massimo di file di controllo che possono essere creati. Non passa al primo file quando si raggiunge il limite. Quando viene raggiunto il MAX_FILES limite, qualsiasi azione che causa la generazione di più eventi di controllo ha esito negativo e viene generato un errore.

RESERVE_DISK_SPACE = { ACCESO | SPENTO }

Questa opzione prealloca il file sul disco al MAXSIZE valore . Si applica solo se MAXSIZE non è uguale a UNLIMITED. Il valore predefinito è OFF.

QUEUE_DELAY = numero intero

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 della query impostabile è 1000 (1 secondo), ovvero l'impostazione predefinita. Il valore massimo è 2.147.483.647 (2.147.483,647 secondi o 24 giorni, 20 ore, 31 minuti e 23,647 secondi). Se specifichi un numero non valido, ricevi l'errore MSG_INVALID_QUEUE_DELAY.

ON_FAILURE = { CONTINUA | ARRESTO | FAIL_OPERATION }

Indica se l'istanza che scrive nel target dovrebbe fallire, continuare o fermarsi se SQL Server non può scrivere nel log di audit.

CONTINUE

Le operazioni di SQL Server continuano. I record di controllo non vengono conservati. 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 ha questo permesso, allora la dichiarazione fallisce e l'audit non viene 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 causano eventi controllati possono continuare, ma nessun evento verificato può verificarsi. 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.

STATE = { ON | OFF }

Consente di abilitare o disabilitare la raccolta dei record mediante il controllo. Cambiando lo stato di un audit in corso (da ON a OFF) si crea una voce di audit che attesta che l'audit è stato interrotto, il capitale che ha interrotto l'audit e il momento in cui l'audit è stato interrotto.

MODIFICA NOME = new_audit_name

Consente di modificare il nome del controllo. Non può essere usato con altre opzioni.

predicate_expression

Viene specificata l'espressione del predicato utilizzata per determinare se un evento deve essere o meno elaborato. Le espressioni di predicato sono limitate a una lunghezza di 3.000 caratteri, che limita gli argomenti stringa.

event_field_name

Nome del campo dell'evento che identifica l'origine del predicato. I campi di controllo sono descritti in sys.fn_get_audit_file. È possibile controllare tutti i campi eccetto file_name e audit_file_offset.

number

Qualsiasi tipo numerico, incluso il decimale. Le limitazioni sono la mancanza di memoria fisica disponibile o un numero troppo grande per essere rappresentato come un numero intero a 64 bit.

'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. Passare il tipo sbagliato comporta un errore

Osservazioni:

Devi specificare almeno una delle TOclausole , WITH, o MODIFY NAME quando chiami ALTER AUDIT.

Per apportare modifiche a un controllo è necessario impostare lo stato del controllo sull'opzione OFF. Se ALTER AUDIT viene eseguito quando viene abilitato un audit con qualsiasi opzione diversa da STATE = OFF, ricevi un MSG_NEED_AUDIT_DISABLED messaggio di errore.

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

Non puoi modificare il GUID di un audit dopo che l'audit è stato creato.

ALTER SERVER AUDIT l'istruzione non può essere utilizzata all'interno di una transazione utente.

Autorizzazioni

Per creare, modificare o eliminare un principio di audit del server, devi avere il permesso ALTER ANY SERVER AUDIT o il permesso CONTROL SERVER.

Esempi

R. Modifica il nome di un server audit

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 un target di audit 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 una clausola WHERE di audit del server

Il seguente esempio modifica la clausola where creata nell'esempio C di CREATE SERVER AUDIT. 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. Rimuovere una clausola WHERE

Il seguente esempio rimuove un'espressione WHERE predicata di clausola.

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

ALTER SERVER AUDIT [FilterForSensitiveData]
REMOVE WHERE;
GO

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

E. Rinomina un audit 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

Transact-SQL riferimento