ALTER SERVER AUDIT (Transact-SQL)

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

Icône Lien de rubrique Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

  • TO { FILE | APPLICATION_LOG | SECURITY }
    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.

  • 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 Mo et la taille maximale est 2 147 483 647 To. Lorsque UNLIMITED est spécifié, la taille du fichier peut croître 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. Lorsque 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 vers le premier fichier lorsque la limite est atteinte. Lorsque la limite de MAX_FILES est atteinte, toute action qui entraîne la génération d'événements d'audit supplémentaires échoue avec une erreur.

  • 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). L'indication d'un nombre non valide génèrera 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
      Les opérations SQL Server continuent. Les enregistrements d'audit ne sont pas conservés. L'audit poursuit sa tentative de consignation des événements et reprend les opérations d'enregistrement une fois la défaillance 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 lorsque 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 un arrêt du serveur lorsque l'instance de serveur qui écrit dans la cible ne peut pas écrire de données dans la cible d'audit. La connexion qui émet cette commande d'arrêt doit avoir l'autorisation SHUTDOWN. Si la connexion n'a pas cette autorisation, cette fonction échoue et un message d'erreur est généré. Aucun événement audité ne se produit. Utilisez cette option si une défaillance de l'audit risque de compromettre la sécurité ou l'intégrité du système.

    • 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 consignation des événements et reprend les opérations d'enregistrement une fois la défaillance 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.

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

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

  • number
    Tout type numérique, y compris 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.

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

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.

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

A.Modification du nom d'un audit du serveur

L'exemple suivant remplace le nom de l'audit du serveur HIPPA_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é HIPPA_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.Modification du nom 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

Référence

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)

Concepts

Créer un audit du serveur et une spécification d'audit du serveur