Condividi tramite


ALTER SERVER AUDIT (Transact-SQL)

Consente di modificare un oggetto Server Audit utilizzando la funzionalità SQL Server Audit. Per ulteriori informazioni, vedere SQL Server Audit (Database Engine).

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

Sintassi

ALTER SERVER AUDIT audit_name
{
    [ TO { { FILE ( <file_options> [, ...n] ) } | APPLICATION_LOG | SECURITY_LOG } ]
    [ 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 | SECURITY }
    Determina la posizione della destinazione del controllo. Le opzioni possibili sono un file binario, il registro applicazioni o il registro di sicurezza di Windows.

  • 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 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, verrà 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 viene specificata l'impostazione MAX_ROLLOVER_FILES=0, non esiste alcun limite al numero di file di rollover che verranno 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 avrà esito negativo e verrà visualizzato un errore.

  • 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, verrà generato l'errore MSG_INVALID_QUEUE_DELAY.

  • ON_FAILURE = { CONTINUE | SHUTDOWN | FAIL_OPERATION}
    Viene indicato se l'istanza tramite cui viene effettuata l'operazione di scrittura nella destinazione deve comportare l'esito negativo, la continuazione o l'arresto 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 consente di continuare il tentativo di registrazione di eventi e verrà ripreso se viene risolta la condizione di errore. Selezionando l'opzione per continuare si potrà consentire un'attività non certificata che potrebbe violare i criteri di sicurezza. Utilizzare questa opzione quando il funzionamento del Motore di database è più importante della gestione di un controllo completo.

    • SHUTDOWN
      Viene forzata la chiusura del server quando risulta impossibile scrivere dati nella destinazione di controllo da parte dell'istanza del server preposta a tale compito. L'account di accesso che esegue questa operazione deve disporre dell'autorizzazione SHUTDOWN. In caso contrario, questa funzione non verrà eseguita e verrà generato un messaggio di errore. Non viene generato alcun evento controllato. Utilizzare l'opzione quando un errore a livello di controllo potrebbe compromettere la sicurezza o l'integrità del sistema.

    • 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 potrà verificare alcun evento controllato. Il controllo consente di continuare il tentativo di registrazione di eventi e verrà ripreso se viene risolta la condizione di errore. Utilizzare 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. 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.

  • 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.

  • 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.

  • ' 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.

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 ALTER AUDIT viene eseguita quando un controllo è abilitato con qualsiasi altra opzione diversa da STATE=OFF, verrà 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.

Autorizzazioni

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

Esempi

A.Modifica del nome di un controllo del server

Nell'esempio seguente il nome del controllo del server HIPPA_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 HIPPA_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

Nell'esempio seguente viene modificata la clausola WHERE creata nell'esempio C di 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

Vedere anche

Riferimento

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.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)

Concetti

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