ALTER SERVER AUDIT (Transact-SQL)ALTER SERVER AUDIT (Transact-SQL)

SI APPLICA A: sìSQL Server sìDatabase SQL di Azure noAzure SQL Data Warehouse noParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Consente di modificare un oggetto Server Audit utilizzando la funzionalità SQL ServerSQL Server Audit.Alters a server audit object using the SQL ServerSQL Server Audit feature. Per altre informazioni, vedere SQL Server Audit (Motore di database).For more information, see SQL Server Audit (Database Engine).

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax

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 ' }  

ArgomentiArguments

TO { FILE | APPLICATION_LOG | SECURITY |URL}TO { FILE | APPLICATION_LOG | SECURITY |URL}
Determina la posizione della destinazione del controllo.Determines the location of the audit target. Le opzioni possibili sono un file binario, il registro applicazioni o il registro di sicurezza di Windows.The options are a binary file, the Windows application log, or the Windows security log.

Importante

In Istanza gestita di database SQL di Azure, il controllo SQL opera a livello di server e archivia i file .xel in Archiviazione BLOB di Azure.In Azure SQL Database Managed Instance, SQL Audit works at the server level and stores .xel files in Azure blob storage.

FILEPATH = 'os_file_path'FILEPATH = 'os_file_path'
Percorso dell'itinerario di controllo.The path of the audit trail. Il nome del file viene generato in base al nome e al GUID del controllo.The file name is generated based on the audit name and audit GUID.

MAXSIZE =max_sizeMAXSIZE =max_size
Specifica le dimensioni massime consentite per il file di controllo.Specifies the maximum size to which the audit file can grow. max_size deve essere un valore intero seguito da MB, GB, TB o UNLIMITED.The max_size value must be an integer followed by 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.The minimum size that you can specify for max_size is 2 MB and the maximum is 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.When UNLIMITED is specified, the file grows until the disk is full. Se si specifica un valore minore di 2 MB, viene generato l'errore MSG_MAXSIZE_TOO_SMALL.Specifying a value lower than 2 MB raises MSG_MAXSIZE_TOO_SMALL the error. Il valore predefinito è UNLIMITED.The default value is UNLIMITED.

MAX_ROLLOVER_FILES =integer | UNLIMITEDMAX_ROLLOVER_FILES =integer | UNLIMITED
Viene specificato il numero massimo di file da mantenere nel file system.Specifies the maximum number of files to retain in the file system. Quando si imposta MAX_ROLLOVER_FILES=0, non esistono limiti al numero di file di rollover che vengono creati.When the setting of MAX_ROLLOVER_FILES=0, there is no limit imposed on the number of rollover files that are created. Il valore predefinito è 0.The default value is 0. Il numero massimo di file specificabili è 2.147.483.647.The maximum number of files that can be specified is 2,147,483,647.

MAX_FILES =integerMAX_FILES =integer
Viene specificato il numero massimo di file di controllo che possono essere creati.Specifies the maximum number of audit files that can be created. Quando si raggiunge il limite, non viene eseguito il rollover del primo file.Does not roll over to the first file when the limit is reached. 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.When the MAX_FILES limit is reached, any action that causes additional audit events to be generated fails with an error.
Si applica a: SQL Server 2012 (11.x)SQL Server 2012 (11.x) tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

RESERVE_DISK_SPACE = { ON | OFF }RESERVE_DISK_SPACE = { ON | OFF }
Questa opzione consente di preallocare il file sul disco in base al valore MAXSIZE.This option pre-allocates the file on the disk to the MAXSIZE value. Viene applicata solo se MAXSIZE non è uguale a UNLIMITED.Only applies if MAXSIZE is not equal to UNLIMITED. Il valore predefinito è OFF.The default value is OFF.

QUEUE_DELAY =integerQUEUE_DELAY =integer
Specifica la quantità di tempo in millisecondi che può trascorrere prima che venga forzata l'esecuzione delle azioni di controllo.Determines the time in milliseconds that can elapse before audit actions are forced to be processed. Il valore 0 indica un recapito sincrono.A value of 0 indicates synchronous delivery. Il valore minimo di ritardo di query che è possibile impostare è 1000 (1 secondo). Tale valore è quello predefinito.The minimum settable query delay value is 1000 (1 second), which is the default. Il valore massimo è 2.147.483.647 (2.147.483,647 secondi o 24 giorni, 20 ore, 31 minuti e 23,647 secondi).The maximum is 2,147,483,647 (2,147,483.647 seconds or 24 days, 20 hours, 31 minutes, 23.647 seconds). Se si specifica un numero non valido, viene generato l'errore MSG_INVALID_QUEUE_DELAY.Specifying an invalid number, raises the error MSG_INVALID_QUEUE_DELAY.

ON_FAILURE = { CONTINUE | SHUTDOWN | FAIL_OPERATION}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 ServerSQL Server non è in grado di scrivere nel log di controllo.Indicates whether the instance writing to the target should fail, continue, or stop if SQL ServerSQL Server cannot write to the audit log.

CONTINUECONTINUE
SQL ServerSQL Server Le operazioni di SQL Server continuano.operations continue. I record di controllo non vengono mantenuti.Audit records are not retained. Il controllo continua nel tentativo di registrare gli eventi e riprende se la condizione di errore viene risolta.The audit continues to attempt to log events and resumes if the failure condition is resolved. Scegliendo di continuare, è possibile consentire un'attività che non è controllata e che quindi potrebbe violare i criteri di sicurezza.Selecting the continue option can allow unaudited activity, which could violate your security policies. Utilizzare questa opzione quando il funzionamento del Motore di databaseDatabase Engine è più importante della gestione di un controllo completo.Use this option, when continuing operation of the Motore di databaseDatabase Engine is more important than maintaining a complete audit.

SHUTDOWNSHUTDOWN
Forza l'arresto dell'istanza di SQL ServerSQL Server se, per qualsiasi motivo, a SQL ServerSQL Server non è possibile scrivere i dati nella destinazione di controllo.Forces the instance of SQL ServerSQL Server to shut down, if SQL ServerSQL Server fails to write data to the audit target for any reason. L'account di accesso che esegue l'istruzione ALTER deve avere l'autorizzazione SHUTDOWN in SQL ServerSQL Server.The login executing the ALTER statement must have the SHUTDOWN permission within SQL ServerSQL 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.The shutdown behavior persists even if the SHUTDOWN permission is later revoked from the executing login. Se l'utente non è in possesso di questa autorizzazione, l'istruzione avrà esito negativo e il controllo non verrà modificato.If the user does not have this permission, then the statement will fail and the audit will not be modified. Utilizzare l'opzione quando un errore a livello di controllo potrebbe compromettere la sicurezza o l'integrità del sistema.Use the option when an audit failure could compromise the security or integrity of the system. Per altre informazioni, vedere SHUTDOWN.For more information, see SHUTDOWN.

FAIL_OPERATIONFAIL_OPERATION
Le azioni del database non vengono completate se provocano eventi controllati.Database actions fail if they cause audited events. Le azioni che non provocano eventi controllati possono continuare, ma non si verificano eventi controllati.Actions, which do not cause audited events can continue, but no audited events can occur. Il controllo continua nel tentativo di registrare gli eventi e riprende se la condizione di errore viene risolta.The audit continues to attempt to log events and resumes if the failure condition is resolved. Utilizzare questa opzione quando la gestione di un controllo completo è più importante dell'accesso completo al Motore di databaseDatabase Engine.Use this option when maintaining a complete audit is more important than full access to the Motore di databaseDatabase Engine.
Si applica a: SQL Server 2012 (11.x)SQL Server 2012 (11.x) tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

STATE = { ON | OFF }STATE = { ON | OFF }
Consente di abilitare o disabilitare la raccolta dei record mediante il controllo.Enables or disables the audit from collecting records. 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.Changing the state of a running audit (from ON to OFF) creates an audit entry that the audit was stopped, the principal that stopped the audit, and the time the audit was stopped.

MODIFY NAME = new_audit_nameMODIFY NAME = new_audit_name
Consente di modificare il nome del controllo.Changes the name of the audit. Questa opzione non può essere utilizzata con altre opzioni.Cannot be used with any other option.

predicate_expressionpredicate_expression
Viene specificata l'espressione del predicato utilizzata per determinare se un evento deve essere o meno elaborato.Specifies the predicate expression used to determine if an event should be processed or not. Le espressioni del predicato possono essere composte da un massimo di 3000 caratteri, pertanto gli argomenti di tipo stringa risultano limitati.Predicate expressions are limited to 3000 characters, which limits string arguments.
Si applica a: SQL Server 2012 (11.x)SQL Server 2012 (11.x) tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

event_field_nameevent_field_name
Nome del campo relativo all'evento che consente di identificare l'origine del predicato.Is the name of the event field that identifies the predicate source. I campi del controllo sono descritti in sys.fn_get_audit_file (Transact-SQL).Audit fields are described in sys.fn_get_audit_file (Transact-SQL). È possibile controllare tutti i campi eccetto file_name e audit_file_offset.All fields can be audited except file_name and audit_file_offset.
Si applica a: SQL Server 2012 (11.x)SQL Server 2012 (11.x) tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

numbernumber
Qualsiasi tipo numerico incluso decimal.Is any numeric type including 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.Limitations are the lack of available physical memory or a number that is too large to be represented as a 64-bit integer.
Si applica a: SQL Server 2012 (11.x)SQL Server 2012 (11.x) tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

' string '' string '
Stringa ANSI o Unicode come richiesto dal paragone del predicato.Either an ANSI or Unicode string as required by the predicate compare. Non viene eseguita alcuna conversione del tipo di stringa implicita per le funzioni del paragone del predicato.No implicit string type conversion is performed for the predicate compare functions. Il passaggio del tipo non corretto comporta un errore.Passing the wrong type results in an error.
Si applica a: SQL Server 2012 (11.x)SQL Server 2012 (11.x) tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

RemarksRemarks

È necessario specificare almeno una delle clausole TO, WITH o MODIFY NAME quando si chiama ALTER AUDIT.You must specify at least one of the TO, WITH, or MODIFY NAME clauses when you call ALTER AUDIT.

Per apportare modifiche a un controllo è necessario impostare lo stato del controllo sull'opzione OFF.You must set the state of an audit to the OFF option in order to make changes to an audit. 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.If ALTER AUDIT is run when an audit is enabled with any options other than STATE=OFF, you receive a MSG_NEED_AUDIT_DISABLED error message.

È possibile aggiungere, modificare e rimuovere specifiche del controllo senza arrestare il controllo stesso.You can add, alter, and remove audit specifications without stopping an audit.

Non è possibile modificare il GUID di un controllo dopo che il controllo è stato creato.You cannot change an audit's GUID after the audit has been created.

PermissionsPermissions

Per creare, modificare o eliminare un'entità del controllo del server, è necessario disporre dell'autorizzazione ALTER ANY SERVER AUDIT o CONTROL SERVER.To create, alter, or drop a server audit principal, you must have ALTER ANY SERVER AUDIT or the CONTROL SERVER permission.

EsempiExamples

A.A. Modifica del nome di un controllo del serverChanging a server audit name

Nell'esempio seguente il nome del controllo del server HIPPA_Audit viene modificato in HIPAA_Audit_Old.The following example changes the name of the server audit HIPPA_Audit to 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.B. Modifica della destinazione di un controllo del serverChanging a server audit target

Nell'esempio seguente il controllo del server denominato HIPPA_Audit viene modificato in una destinazione file.The following example changes the server audit called HIPPA_Audit to a file target.

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.C. Modifica di una clausola WHERE del controllo di un serverChanging a server audit WHERE clause

Nell'esempio seguente viene modificata la clausola WHERE creata nell'esempio C di CREATE SERVER AUDIT (Transact-SQL).The following example modifies the where clause created in example C of CREATE SERVER AUDIT (Transact-SQL). La nuova clausola WHERE consente di filtrare l'evento definito dall'utente, se pari a 27.The new WHERE clause filters for the user-defined event if of 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.D. Rimozione di una clausola WHERERemoving a WHERE clause

Nell'esempio seguente viene rimossa un'espressione del predicato della clausola WHERE.The following example removes a WHERE clause predicate expression.

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

E.E. Ridenominazione di un controllo del serverRenaming a server audit

Nell'esempio seguente il nome del controllo del server viene modificato da FilterForSensitiveData a AuditDataAccess.The following example changes the server audit name from FilterForSensitiveData to 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 ancheSee Also

DROP SERVER AUDIT (Transact-SQL) DROP SERVER AUDIT (Transact-SQL)
CREATE SERVER AUDIT SPECIFICATION (Transact-SQL) CREATE SERVER AUDIT SPECIFICATION (Transact-SQL)
ALTER SERVER AUDIT SPECIFICATION (Transact-SQL) ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)
DROP SERVER AUDIT SPECIFICATION (Transact-SQL) DROP SERVER AUDIT SPECIFICATION (Transact-SQL)
CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL) CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)
ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL) ALTER DATABASE AUDIT SPECIFICATION (Transact-SQL)
DROP DATABASE AUDIT SPECIFICATION (Transact-SQL) DROP DATABASE AUDIT SPECIFICATION (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL) ALTER AUTHORIZATION (Transact-SQL)
sys.fn_get_audit_file (Transact-SQL) sys.fn_get_audit_file (Transact-SQL)
sys.server_audits (Transact-SQL) sys.server_audits (Transact-SQL)
sys.server_file_audits (Transact-SQL) sys.server_file_audits (Transact-SQL)
sys.server_audit_specifications (Transact-SQL) sys.server_audit_specifications (Transact-SQL)
sys.server_audit_specification_details (Transact-SQL) sys.server_audit_specification_details (Transact-SQL)
sys.database_audit_specifications (Transact-SQL) sys.database_audit_specifications (Transact-SQL)
sys.database_audit_specification_details (Transact-SQL) sys.database_audit_specification_details (Transact-SQL)
sys.dm_server_audit_status (Transact-SQL) sys.dm_server_audit_status (Transact-SQL)
sys.dm_audit_actions (Transact-SQL) sys.dm_audit_actions (Transact-SQL)
Creazione di un controllo del server e di una specifica del controllo del serverCreate a Server Audit and Server Audit Specification