Créer une alerte d'événement WMI

S’applique à : SQL Server Azure SQL Managed Instance

Important

Dans Azure SQL Managed Instance, la plupart, mais pas toutes les fonctionnalités SQL Server Agent sont actuellement prises en charge. Pour plus d’informations, consultez Différences T-SQL entre Azure SQL Managed Instance et SQL Server.

Cet article explique comment créer une alerte SQL Server Agent qui se déclenche quand un événement SQL Server spécifique supervisé par le fournisseur WMI pour les événements serveur se produit dans SQL Server, en utilisant SQL Server Management Studio ou Transact-SQL.

Pour plus d’informations sur l’utilisation du fournisseur WMI pour superviser les événements SQL Server, consultez Fournisseur WMI pour les classes et propriétés d’événements serveur. Pour plus d’informations sur les autorisations nécessaires pour recevoir des notifications d’alertes d’événements WMI, consultez Sélectionner un compte pour le service SQL Server Agent. Pour plus d’informations sur WQL, consultez Utilisation de WQL avec le fournisseur WMI pour les événements de serveur.

Limitations et restrictions

  • SQL Server Management Studio est un outil simple, fonctionnant en mode graphique, qui permet de gérer tout le système d’alerte. Son utilisation est recommandée pour configurer une infrastructure d’alertes.

  • Les événements générés avec xp_logevent surviennent dans la base de données master. Ainsi, xp_logevent ne déclenche pas d’alerte sauf si le paramètre @database_name pour l’alerte a la valeur 'master' ou NULL.

  • Seuls les espaces de noms WMI se trouvant sur l’ordinateur qui exécute SQL Server Agent sont pris en charge.

Autorisations

Par défaut, seuls les membres du rôle serveur fixe sysadmin peuvent exécuter la procédure sp_add_alert.

Utiliser SQL Server Management Studio

  1. Dans l’Explorateur d’objets, sélectionnez le signe plus (+) pour développer le serveur sur lequel vous souhaitez créer une alerte d’événement WMI.

  2. Sélectionnez le signe plus (+) pour développer SQL Server Agent.

  3. Cliquez avec le bouton droit sur Alertes , puis sélectionnez Nouvelle alerte.

  4. Dans la boîte de dialogue Nouvelle alerte , dans la zone Nom , entrez un nom pour cette alerte.

  5. Sélectionnez la case à cocher Activer afin d'activer l'alerte à exécuter. Par défaut, l'option Activer est sélectionnée.

  6. Dans la liste Type , sélectionnez Alerte d'événement WMI.

  7. Sous Définition d’une alerte d’événement WMI, dans la zone Espace de noms , spécifiez l’espace de noms WMI pour l’instruction WQL (WMI Query Language) qui identifie l’événement WMI qui déclenchera cette alerte.

  8. Dans la zone Requête , spécifiez l'instruction WQL qui identifie l'événement auquel cette alerte répond.

  9. Sélectionnez OK.

Utiliser Transact-SQL

  1. Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.

  2. Dans la barre d’outils standard, sélectionnez Nouvelle requête.

  3. Copiez et collez l’exemple suivant dans la fenêtre de requête, puis sélectionnez Exécuter.

    USE msdb;
    GO
    
    EXEC dbo.sp_add_alert @name = N'Test Alert 2',
        @message_id = 54001,
        @notification_message = N'Error 54001 has occurred on the Sales.SalesOrderDetail table on the AdventureWorks2022 database.',
        @wmi_namespace = '\.\root\Microsoft\SqlServer\ServerEvents',
        @wmi_query = N'SELECT * FROM ALTER_TABLE
    WHERE DatabaseName = ''AdventureWorks2022'' AND SchemaName = ''Sales''
    AND ObjectType=''Table'' AND ObjectName = ''SalesOrderDetail''';
    GO
    

Étapes suivantes