ALTER SERVER AUDIT (Transact-SQL)

S’applique à :SQL ServerAzure SQL Managed Instance

Modifie un objet d’audit du serveur à l’aide de la fonctionnalité SQL Server Audit. Pour plus d’informations, consultez Audit SQL Server (moteur de base de données).

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Arguments

TO { FILE | APPLICATION_LOG | SECURITY |URL}
Détermine l'emplacement de la cible de l'audit. Les options sont un fichier binaire, le journal des applications Windows ou le journal de sécurité Windows.

Important

Dans Azure SQL Managed Instance, l’audit SQL fonctionne au niveau du serveur et stocke les fichiers .xel dans Stockage Blob Azure.

FILEPATH = 'os_file_path'
Chemin d'accès de la piste d'audit. Le nom de fichier est généré en fonction du nom d'audit et du GUID d'audit.

MAXSIZE =max_size
Taille maximale que peut atteindre le fichier d'audit. La valeur max_size doit être un entier suivi de MB, GB, TB ou UNLIMITED. La taille minimale que vous pouvez spécifier pour max_size est 2 MB et la taille maximale est 2 147 483 647 TB. Quand UNLIMITED est spécifié, la taille du fichier croît jusqu’à ce que le disque soit saturé. La spécification d’une valeur inférieure à 2 Mo génère l’erreur MSG_MAXSIZE_TOO_SMALL. La valeur par défaut est UNLIMITED.

MAX_ROLLOVER_FILES =integer | UNLIMITED
Spécifie le nombre maximal de fichiers à conserver dans le système de fichiers. Quand le paramètre MAX_ROLLOVER_FILES=0 est défini, aucune limite n’est imposée quant au nombre de fichiers de substitution créés. La valeur par défaut est 0. Le nombre maximal de fichiers qui peuvent être spécifiés est 2 147 483 647.

MAX_FILES =integer
Spécifie le nombre maximal de fichiers d'audit qui peuvent être créés. N’effectue pas de substitution par le premier fichier quand la limite est atteinte. Quand la limite MAX_FILES est atteinte, toute action qui entraîne la génération d’événements d’audit supplémentaires échoue avec une erreur.
S’applique à : SQL Server 2012 (11.x) et versions ultérieures.

RESERVE_DISK_SPACE = { ON | OFF }
Cette option pré-alloue la valeur MAXSIZE au fichier sur le disque. S'applique uniquement si MAXSIZE n'est pas égal à UNLIMITED. La valeur par défaut est OFF.

QUEUE_DELAY =integer
Détermine la durée, en millisecondes, qui peut s'écouler avant que le traitement des actions d'audit soit forcé. Une valeur de 0 indique la remise synchrone. La valeur minimale du délai de requête définissable est 1000 (1 seconde), qui est la valeur par défaut. Le maximum est 2 147 483 647 (2 147 483,647 secondes ou 24 jours, 20 heures, 31 minutes, 23,647 secondes). La spécification d’un nombre non valide génère l’erreur MSG_INVALID_QUEUE_DELAY.

ON_FAILURE = { CONTINUE | SHUTDOWN | FAIL_OPERATION}
Indique si l'instance qui écrit dans la cible doit échouer, continuer ou s'arrêter si SQL Server ne peut pas écrire dans le journal d'audit.

CONTINUE
SQL Server Les opérations continuent. Les enregistrements d'audit ne sont pas conservés. L’audit poursuit sa tentative de journalisation des événements et reprend les opérations d’enregistrement une fois la condition d’échec résolue. La sélection de l’option CONTINUE peut permettre l’exécution d’une activité non auditée susceptible d’enfreindre vos stratégies de sécurité. Utilisez cette option quand la poursuite de l’opération du Moteur de base de données est plus importante que la conservation d’un audit complet.

SHUTDOWN
Force l’instance de SQL Server à s’arrêter, si SQL Server ne parvient pas à écrire des données dans la cible d’audit pour une raison quelconque. Le compte de connexion exécutant l’instruction ALTER doit disposer de l’autorisation SHUTDOWN dans SQL Server. Le comportement d’arrêt persiste même si l’autorisation SHUTDOWN est révoquée ultérieurement du compte de connexion en cours d’exécution. Si l’utilisateur ne dispose pas de cette autorisation, l’instruction échoue et l’audit n’est pas modifié. Utilisez cette option si une défaillance de l'audit risque de compromettre la sécurité ou l'intégrité du système. Pour plus d’informations, consultez SHUTDOWN.

FAIL_OPERATION
Les actions de base de données échouent si elles entraînent des événements audités. Les actions qui n’entraînent pas d’événements audités peuvent continuer, mais aucun événement audité ne peut se produire. L’audit poursuit sa tentative de journalisation des événements et reprend les opérations d’enregistrement une fois la condition d’échec résolue. Utilisez cette option lorsqu'il est plus important de conserver un audit complet que de disposer d'un accès complet au Moteur de base de données.
S’applique à : SQL Server 2012 (11.x) et versions ultérieures.

STATE = { ON | OFF }
Active ou désactive la collecte d'enregistrements d'audit. La modification de l'état d'un audit en cours d'exécution (de ON à OFF) crée une entrée d'audit signalant que l'audit a été arrêté et indiquant le principal qui a arrêté l'audit et l'heure d'arrêt de l'audit.

MODIFY NAME = new_audit_name
Modifie le nom de l'audit. Ne peut être utilisée avec aucune autre option.

predicate_expression
Spécifie l'expression de prédicat utilisée pour déterminer si un événement doit ou non être traité. Les expressions de prédicat sont limitées à 3 000 caractères, ce qui limite les arguments de chaîne.
S’applique à : SQL Server 2012 (11.x) et versions ultérieures.

event_field_name
Nom du champ d'événement qui identifie la source de prédicat. Les champs d’audit sont décrits dans sys.fn_get_audit_file (Transact-SQL). Tous les champs peuvent être audités sauf file_name et audit_file_offset.
S’applique à : SQL Server 2012 (11.x) et versions ultérieures.

nombre
Tout type numérique, dont decimal. Le manque de mémoire physique ou un nombre trop grand pour être représenté sous forme d'entier 64 bits sont les seules limitations.
S’applique à : SQL Server 2012 (11.x) et versions ultérieures.

' string '
Chaîne ANSI ou Unicode, comme requis par la comparaison de prédicat. Aucune conversion implicite de type chaîne n'est effectuée pour les fonctions de comparaison de prédicat. La transmission d'un type incorrect provoque une erreur.
S’applique à : SQL Server 2012 (11.x) et versions ultérieures.

Notes

Vous devez spécifier au moins l'une des clauses TO, WITH ou MODIFY NAME lorsque vous appelez ALTER AUDIT.

Vous devez définir l'état d'un audit sur l'option OFF pour apporter des modifications à un audit. Si ALTER AUDIT est exécuté pendant qu’un audit est activé avec des options autres que STATE=OFF, un message d’erreur MSG_NEED_AUDIT_DISABLED s’affiche.

Vous pouvez ajouter, modifier et supprimer des spécifications d'audit sans arrêter un audit.

Vous ne pouvez pas modifier le GUID d’un audit après sa création.

L’instruction ALTER SERVER AUDIT ne peut pas être utilisée à l’intérieur d’une transaction utilisateur.

Autorisations

Pour créer, modifier ou supprimer un principal de l'audit du serveur, vous devez posséder l'autorisation ALTER ANY SERVER AUDIT ou CONTROL SERVER.

Exemples

R. Modification du nom d'un audit du serveur

L'exemple suivant remplace le nom de l'audit du serveur HIPAA_Audit par 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. Modification de la cible d'un audit du serveur

L'exemple suivant attribue à l'audit du serveur nommé HIPAA_Audit un fichier comme cible.

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. Modification d'une clause WHERE d'audit du serveur

L’exemple suivant modifie la clause WHERE créée dans l’exemple C de CREATE SERVER AUDIT (Transact-SQL). La nouvelle clause WHERE applique un filtre basé sur l’ID d’événement défini par l’utilisateur 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. Suppression d'une clause WHERE

L'exemple suivant supprime une expression de prédicat de clause 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. Renommage d’un audit du serveur

L'exemple suivant renomme l'audit de serveur FilterForSensitiveData en 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  

Voir aussi

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 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)
Créer un audit du serveur et une spécification d’audit du serveur