Démarrage rapide : Événements étendus

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Les événements étendus sont une fonctionnalité de supervision des performances légère qui permet aux utilisateurs de collecter des données pour surveiller et résoudre les problèmes. En utilisant des événements étendus, vous pouvez voir les détails des opérations internes du moteur de base de données pertinentes à des fins d’analyse des performances et de résolution des problèmes. Pour en savoir plus sur les événements étendus, consultez la vue d’ensemble des événements étendus.

Cet article vise à aider les administrateurs, les ingénieurs et les développeurs SQL qui débutent avec les événements étendus, et qui souhaitent commencer à l’utiliser et voir les données d’événements en quelques minutes.

Les événements étendus sont également appelés XEvents, et parfois simplement XE.

Après avoir lu cet article, vous pouvez :

  • Découvrez comment créer une session d’événements dans SQL Server Management Studio (SSMS), avec des exemples de captures d’écran
  • Mettre en corrélation des captures d’écran à des instructions Transact-SQL équivalentes
  • Comprendre en détail les termes et concepts de l’interface utilisateur SSMS et des instructions T-SQL XEvents
  • Découvrez comment tester votre session d’événements
  • Comprendre les résultats de session, notamment :
    • Options disponibles pour le stockage des résultats
    • Résultats traités et bruts
    • Outils permettant d’afficher les résultats de différentes manières et sur différentes échelles de temps
  • Découvrez comment rechercher et découvrir tous les événements disponibles
  • Comprendre les relations entre les vues système d’événements étendus

Conseil

Pour plus d’informations sur les événements étendus dans Azure SQL Database, notamment des exemples de code, consultez Événements étendus dans SQL Database.

Conditions préalables initiales

Pour commencer, vous devez :

  1. Téléchargez SQL Server Management Studio (SSMS). Nous vous recommandons d’utiliser une version récente de SSMS avec les dernières améliorations et correctifs.
  2. Vérifiez que votre compte dispose de l’autorisation du ALTER ANY EVENT SESSIONserveur.

Des détails sur la sécurité et les autorisations relatives aux événements étendus sont disponibles à la fin de cet article dans l’annexe.

Événements étendus dans SSMS

SSMS fournit une interface utilisateur entièrement fonctionnelle pour les événements étendus. De nombreux scénarios peuvent être réalisés à l’aide de cette interface utilisateur, sans avoir à utiliser des vues de gestion dynamique (DMV) T-SQL ou dynamiques.

Dans cette section, vous pouvez voir les étapes de l’interface utilisateur pour créer une session Événements étendus et afficher les données qu’il signale. Après avoir parcouru les étapes pratiques ou les examiner dans cet article, vous pouvez lire les concepts impliqués dans les étapes pour une compréhension plus approfondie.

Créer une session d’événements dans SSMS

Lorsque vous créez une session Événements étendus, vous indiquez au système :

  • Quels événements vous intéressez
  • Comment vous souhaitez que le système signale les données à vous

La démonstration ouvre la boîte de dialogue Nouvelle session , montre comment utiliser ses quatre pages, nommées :

  • Général
  • Événements
  • Stockage des données
  • Avancé

Le texte et les captures d’écran de prise en charge peuvent être légèrement différents dans votre version de SSMS, mais doivent toujours être pertinents pour l’explication des concepts de base.

  1. Connecter à une instance du moteur de base de données. Les événements étendus sont pris en charge à partir de SQL Server 2014, dans Azure SQL Database et Azure SQL Managed Instance.

  2. Dans l’Explorateur d’objets, sélectionnez Événements étendus de gestion>. Dans Azure SQL Database, les sessions d’événements sont limitées à la base de données. L’option Événements étendus se trouve donc sous chaque base de données, et non sous Gestion. Cliquez avec le bouton droit sur le dossier Sessions , puis sélectionnez Nouvelle session. La boîte de dialogue Nouvelle session est préférable à l’Assistant Nouvelle session, bien que les deux soient similaires.

  3. En haut à gauche, sélectionnez la page Général . YourSessionTapez ensuite, ou n’importe quel nom que vous aimez, dans la zone de texte Nom de session. Ne sélectionnez pas encore OK , car vous devez toujours entrer des détails sur d’autres pages.

    Screenshot of New Session > General > Session name.

  4. En haut à gauche, sélectionnez la page Événements .

    Screenshot of New Session > Events > Select > Event library, Selected events.

  5. Dans la zone bibliothèque d’événements, dans la liste déroulante, choisissez uniquement les noms d’événements.

    • Tapez sql_statement_ dans la zone de texte. Cette option filtre la liste pour afficher uniquement les événements portant sql_statement_ le nom.
    • Faites défiler et sélectionnez l’événement nommé sql_statement_completed.
    • Sélectionnez le bouton flèche > droite pour déplacer l’événement vers la zone Événements sélectionnés .
  6. Dans la page Événements , sélectionnez le bouton Configurer en haut à droite. La zone Options de configuration des événements s’ouvre pour les événements sélectionnés.

    Screenshot of New Session > Events > Configure > Filter (Predicate) > Field.

  7. Sélectionnez l’onglet Filtre (prédicat). Ensuite, sélectionnez Sélectionner ici pour ajouter une clause. Nous configurons ce filtre (également appelé prédicat) pour capturer toutes les SELECT instructions qui ont une HAVING clause.

  8. Dans la liste déroulante Champ , choisissez sqlserver.sql_text.

    • Pour l’opérateur, choisissez like_i_sql_unicode_string. Ici, i dans le nom de l’opérateur signifie case-i nsensible.
    • Pour Valeur, tapez %SELECT%HAVING%. Ici, les signes de pourcentage sont sauvages carte debout pour n’importe quelle chaîne de caractères.

    Remarque

    Dans le nom en deux parties du champ, sqlserver est le nom du package et sql_text est le nom du champ. L’événement que nous avons choisi précédemment, sql_statement_completed, doit être dans le même package que le champ que nous choisissons.

  9. En haut à gauche, sélectionnez la page Data Stockage.

  10. Dans la zone Cibles , sélectionnez Sélectionner ici pour ajouter une cible.

    • Dans la liste déroulante Type , choisissez event_file. Cela signifie que les données d’événement sont stockées dans un fichier que nous pouvons ouvrir et afficher ultérieurement. Dans Azure SQL Database et Azure SQL Managed Instance, les données d’événement sont stockées dans des objets blob Stockage Azure.

    Remarque

    À compter de SQL Server 2019, vous pouvez utiliser Stockage Blob Azure dans une event_file cible dans SQL Server.

    Screenshot of New Session > Data Storage > Targets > Type > event_file.

  11. Dans la zone Propriétés , tapez le chemin d’accès complet et le nom de fichier dans la zone de texte Nom de fichier sur la zone de texte du serveur . Vous pouvez également utiliser le bouton Parcourir . L’extension de nom de fichier doit être xel. Dans notre exemple, nous avons utilisé C:\Temp\YourSession_Target.xel

    Screenshot of New Session > Advanced > Maximum dispatch latency > OK.

  12. En haut à gauche, sélectionnez la page Avancé . Réduisez la latence de répartition maximale à 3 secondes.

  13. Sélectionnez le bouton OK en bas pour créer cette session d’événements.

  14. De retour dans l’Explorateur d’objets, ouvrez ou actualisez le dossier Sessions et consultez le nouveau nœud pour YourSession. La session n’est pas encore démarrée. Vous la démarrez plus tard.

    Screenshot of Node for your new *event session* named YourSession, in the Object Explorer, under Management > Extended Events > Sessions.

Modifier une session d’événements dans SSMS

Dans l’Explorateur d’objets SSMS, vous pouvez modifier votre session d’événements en cliquant avec le bouton droit sur son nœud, puis en sélectionnant Propriétés. La même boîte de dialogue constituée de plusieurs pages s’affiche.

Créer une session d’événements à l’aide de T-SQL

Dans l’interface utilisateur des événements étendus SSMS, vous pouvez générer un script T-SQL pour créer votre session d’événements comme suit :

  • Cliquez avec le bouton droit sur le nœud de session d’événements, puis sélectionnez Session de script comme > CREATE dans > le Presse-papiers.
  • Collez-le dans un éditeur de texte.

Voici l’instruction T-SQL générée CREATE EVENT SESSION pour YourSession:

CREATE EVENT SESSION [YourSession]
    ON SERVER -- For SQL Server and Azure SQL Managed Instance
    -- ON DATABASE -- For Azure SQL Database
    ADD EVENT sqlserver.sql_statement_completed
    (
        ACTION(sqlserver.sql_text)
        WHERE
        ( [sqlserver].[like_i_sql_unicode_string]([sqlserver].[sql_text], N'%SELECT%HAVING%')
        )
    )
    ADD TARGET package0.event_file
    (SET
        filename = N'C:\Temp\YourSession_Target.xel',
        max_file_size = (2),
        max_rollover_files = (2)
    )
    WITH (
        MAX_MEMORY = 2048 KB,
        EVENT_RETENTION_MODE = ALLOW_MULTIPLE_EVENT_LOSS,
        MAX_DISPATCH_LATENCY = 3 SECONDS,
        MAX_EVENT_SIZE = 0 KB,
        MEMORY_PARTITION_MODE = NONE,
        TRACK_CAUSALITY = OFF,
        STARTUP_STATE = OFF
    );
GO

DROP conditionnel de la session d’événements

Avant l’instruction CREATE EVENT SESSION , vous pouvez exécuter une DROP EVENT SESSION instruction de manière conditionnelle si une session portant le même nom existe déjà. Cela supprime la session existante. Sans cela, la tentative de création d’une session portant le même nom provoque une erreur.

IF EXISTS (SELECT *
      FROM sys.server_event_sessions
      WHERE name = 'YourSession')
BEGIN
    DROP EVENT SESSION YourSession
          ON SERVER;
END
GO

Démarrer et arrêter la session d’événements à l’aide de T-SQL

Quand vous créez une session d’événements, par défaut, elle ne démarre pas automatiquement. Vous pouvez démarrer ou arrêter votre session d’événements à tout moment à l’aide de l’instruction T-SQL suivante ALTER EVENT SESSION .

ALTER EVENT SESSION [YourSession]
      ON SERVER
    STATE = START; -- STOP;

Vous avez la possibilité de configurer la session d’événements pour démarrer automatiquement lorsque l’instance du moteur de base de données est démarrée. Voir le STARTUP STATE = ON mot clé dans CREATE EVENT SESSION.

L’interface utilisateur de SSMS offre une boîte de réception case activée correspondante, démarrer la session d’événements au démarrage du serveur, dans la page Général de la nouvelle session>.

Tester une session d’événements

Testez votre session d’événements en procédant comme suit :

  1. Dans l’Explorateur d’objets, cliquez avec le bouton droit sur votre nœud de session d’événements, puis sélectionnez Démarrer la session.
  2. Lors de la connexion au même serveur (ou à la même base de données dans Azure SQL Database) où vous avez créé la session d’événements, exécutez l’instruction suivante SELECT...HAVING quelques fois. Envisagez de modifier la valeur de la HAVING clause pour chaque exécution, basculez entre 2 et 3. Cela vous permet de voir les différences dans les résultats.
  3. Cliquez avec le bouton droit sur votre nœud de session, puis sélectionnez Arrêter la session.
  4. Lisez la sous-section suivante sur la manière de sélectionner et afficher les résultats.
SELECT
        c.name,
        Count(*)  AS [Count-Per-Column-Repeated-Name]
    FROM
             sys.syscolumns  AS c
        JOIN sys.sysobjects  AS o
            ON o.id = c.id
    WHERE
        o.type = 'V'
        AND
        c.name like '%event%'
    GROUP BY
        c.name
    HAVING
        Count(*) >= 3   --2     -- Try both values during session.
    ORDER BY
        c.name;

Pour l’exhaustivité, voici l’exemple de sortie de l’exemple précédent SELECT...HAVING.

/* Approximate output, 6 rows, all HAVING Count >= 3:
name                   Count-Per-Column-Repeated-Name
---------------------  ------------------------------
event_group_type       4
event_group_type_desc  4
event_session_address  5
event_session_id       5
is_trigger_event       4
trace_event_id         3
*/

Afficher les données de session d’événements en tant que XML

Dans une fenêtre de requête dans SSMS, exécutez l’instruction suivante SELECT pour afficher les données d’événement capturées par votre session. Chaque ligne représente une occurrence d’événement. Le CAST(... AS xml) type de données de la colonne passe de nvarchar au format xml. Cela vous permet de sélectionner la valeur de colonne pour l’ouvrir dans une nouvelle fenêtre pour faciliter la lecture.

Remarque

La event_file cible insère toujours une partie numérique dans le nom de xel fichier. Avant de pouvoir exécuter la requête suivante, vous devez copier le nom complet réel du xel fichier qui inclut cette partie numérique et le coller dans l’instruction SELECT . Dans l’exemple ci-dessous, la partie numérique est _0_131085363367310000.

SELECT
        object_name,
        file_name,
        file_offset,
        event_data,
        'CLICK_NEXT_CELL_TO_BROWSE_XML RESULTS!'
                AS [CLICK_NEXT_CELL_TO_BROWSE_XML_RESULTS],
        CAST(event_data AS xml) AS [event_data_XML]
                -- TODO: In the SSMS results grid, click this XML cell
    FROM
        sys.fn_xe_file_target_read_file(
            'C:\Temp\YourSession_Target_0_131085363367310000.xel',
            null, null, null
        );

Cette requête fournit deux façons d’afficher les résultats complets d’une ligne d’événement donnée :

  • Exécutez SELECT dans SSMS, puis sélectionnez une cellule dans la event_data_XML colonne.

  • Copiez la chaîne XML à partir d’une cellule de la event_data colonne. Collez dans n’importe quel éditeur de texte comme Bloc-notes Windows, puis enregistrez le fichier avec l’extension xml. Ouvrez ensuite le fichier dans un navigateur ou un éditeur capable d’afficher des données XML.

Données d’événement dans XML

Ensuite, nous observons qu’une partie des résultats est au format XML. Le code XML ici est modifié pour la concision. <data name="row_count"> affiche une valeur de , qui correspond à nos six lignes de 6résultat affichées précédemment. Et nous pouvons voir l’ensemble de l’affirmation SELECT .

<event name="sql_statement_completed" package="sqlserver" timestamp="2016-05-24T04:06:08.997Z">
  <data name="duration">
    <value>111021</value>
  </data>
  <data name="cpu_time">
    <value>109000</value>
  </data>
  <data name="physical_reads">
    <value>0</value>
  </data>
  <data name="last_row_count">
    <value>6</value>
  </data>
  <data name="offset">
    <value>0</value>
  </data>
  <data name="offset_end">
    <value>584</value>
  </data>
  <data name="statement">
    <value>SELECT
        c.name,
        Count(*)  AS [Count-Per-Column-Repeated-Name]
    FROM
             sys.syscolumns  AS c
        JOIN sys.sysobjects  AS o

            ON o.id = c.id
    WHERE
        o.type = 'V'
        AND
        c.name like '%event%'
    GROUP BY
        c.name
    HAVING
        Count(*) &gt;= 3   --2     -- Try both values during session.
    ORDER BY
        c.name</value>
  </data>
</event>

Afficher les données de session d’événements dans SSMS

Il existe plusieurs fonctionnalités avancées dans l’interface utilisateur de SSMS que vous pouvez utiliser pour afficher les données capturées par une session d’événements. Pour plus d’informations, consultez Afficher les données d’événement dans SQL Server Management Studio.

Vous commencez par les options de menu contextuel intitulées Afficher les données cibles et regarder les données actives.

Afficher les données cibles

Dans l’Explorateur d’objets SSMS, vous pouvez cliquer avec le bouton droit sur le nœud cible qui se trouve sous votre nœud de session d’événements. Dans le menu contextuel, sélectionnez Afficher les données cibles. SSMS affiche les données.

L’affichage n’est pas mis à jour à mesure que de nouveaux événements se produisent dans une session. Mais vous pouvez à nouveau sélectionner Afficher les données cibles.

Screenshot of View Target Data, in SSMS, Management > Extended Events > Sessions > YourSession > package0.event_file, right-click.

Regarder les données en direct

Dans l’ Explorateur d’objetsde SSMS, vous pouvez cliquer avec le bouton droit sur le nœud de votre session d’événements. Dans le menu contextuel, sélectionnez Watch Live Data. SSMS affiche les données entrantes au fur et à mesure qu’elles arrivent en temps réel.

Screenshot of Watch Live Data, in SSMS, Management > Extended Events > Sessions > YourSession, right-click.

Termes et concepts dans les événements étendus

Le tableau suivant répertorie les termes utilisés pour les événements étendus et décrit leurs significations.

Terme Description
event session Construction centrée autour d’un ou plusieurs événements, associées à des éléments comme des actions et des cibles. L’instruction CREATE EVENT SESSION crée chaque session d’événements. Vous pouvez ALTER démarrer une session d’événements et l’arrêter à l’écran.

Une session d’événements est parfois simplement appelée session. Quand le contexte le précise, il s’agit d’une session d’événements.

Des détails supplémentaires sur les sessions d’événements sont décrits dans : sessions d’événements étendus.
event Occurrence spécifique dans le système qui est surveillée par une session d’événements active.

Par exemple, l’événement sql_statement_completed représente le moment où une instruction T-SQL donnée se termine. L’événement peut signaler sa durée et d’autres données.
target Élément qui reçoit les données de sortie d’un événement capturé. La cible vous affiche les données.

Les exemples incluent la event_file cible utilisée précédemment dans ce démarrage rapide et la ring_buffer cible qui conserve les événements les plus récents en mémoire.

Tout type de cible peut être utilisé pour n’importe quelle session d’événements. Pour plus d’informations, consultez Cibles pour les événements étendus.
action Champ connu de l’événement. Les données issues du champ sont envoyées à la cible. Le champ d’action est étroitement lié au filtre de prédicat.
predicateou filtre Test de données d’un champ d’événement, utilisé pour que seul un sous-ensemble intéressant d’occurrences d’événements soit envoyé à la cible.

Par exemple, un filtre peut inclure uniquement les sql_statement_completed occurrences d’événements où l’instruction T-SQL contenait la chaîne HAVING.
package Qualificateur de nom associé à chaque élément dans un ensemble d’éléments qui tournent autour d’un cœur d’événements.

Par exemple, un package peut avoir des événements sur le texte T-SQL. Un événement peut être à propos de tous les T-SQL dans un lot. Dans le même temps, un autre événement plus précis concerne des instructions T-SQL individuelles. De plus, pour n’importe quelle instruction T-SQL, il existe started et completed des événements.

Les champs appropriés aux événements sont également inclus dans le package avec les événements. La plupart des cibles sont package0 dans et sont utilisées avec des événements de nombreux autres packages.

Scénarios d’événements étendus et détails d’utilisation

Il existe de nombreux scénarios d’utilisation d’événements étendus pour surveiller et résoudre les problèmes du moteur de base de données et des charges de travail de requête. Les articles suivants fournissent des exemples utilisant des scénarios liés au verrouillage :

Guide pratique pour découvrir les événements disponibles dans les packages

La requête suivante retourne une ligne pour chaque événement disponible dont le nom contient la chaîne sqlde trois caractères. Vous pouvez modifier la LIKE clause pour rechercher différents noms d’événements. Le jeu de résultats identifie également le package qui contient l’événement.

SELECT -- Find an event you want.
    p.name AS [Package-Name],
    o.object_type,
    o.name AS [Object-Name],
    o.description AS [Object-Descr],
    p.guid AS [Package-Guid]
FROM sys.dm_xe_packages AS p
INNER JOIN sys.dm_xe_objects AS o
    ON p.guid = o.package_guid
WHERE o.object_type = 'event' --'action'  --'target'
    AND p.name LIKE '%'
    AND o.name LIKE '%sql%'
ORDER BY p.name,
    o.object_type,
    o.name;

L’exemple de résultat suivant montre la ligne retournée, pivotée ici dans le format de column name = value. Les données proviennent de l’événement sql_statement_completed utilisé dans les étapes de l’exemple précédent. La description de l’objet (un événement, dans cet exemple) sert de chaîne de documentation.

Package-Name = sqlserver
object_type  = event
Object-Name  = sql_statement_completed
Object-Descr = Occurs when a Transact-SQL statement has completed.
Package-Guid = 655FD93F-3364-40D5-B2BA-330F7FFB6491

Rechercher des événements à l’aide de l’interface utilisateur de SSMS

Une autre option permettant de trouver des événements par nom consiste à utiliser la boîte de dialogue Nouvelle bibliothèque d’événements d’événements > de > session qui s’affiche dans une capture d’écran précédente. Vous pouvez taper un nom d’événement partiel et rechercher tous les noms d’événements correspondants.

Classes d’événements TRACE SQL

Une description de l’utilisation d’événements étendus avec des classes d’événements et des colonnes TRACE SQL est disponible à : afficher les événements étendus équivalents aux classes d’événements trace SQL.

Suivi d’événements pour Windows (ETW)

Vous trouverez des descriptions de l’utilisation des événements étendus avec le suivi d’événements pour Windows (ETW) ici :

Sessions d’événements système

Dans SQL Server et Azure SQL Managed Instance, plusieurs sessions d’événements système sont créées par défaut et configurées pour démarrer au démarrage du moteur de base de données. Comme la plupart des sessions d’événements, elles consomment une petite quantité de ressources et n’affectent pas matériellement les performances de la charge de travail. Microsoft recommande que ces sessions restent activées et en cours d’exécution. Les sessions d’intégrité, en particulier la session system_health, sont souvent utiles pour la supervision et la résolution des problèmes.

Vous pouvez voir ces sessions d’événements dans l’Explorateur d’objets SSMS sous Sessions d’événements étendus > de gestion>. Par exemple, dans SQL Server, ces sessions d’événements système sont les suivantes :

  • AlwaysOn_health
  • system_health
  • telemetry_events

Fournisseur PowerShell

Vous pouvez gérer les événements étendus à l’aide du fournisseur SQL Server PowerShell. Pour plus d’informations, consultez Utiliser le fournisseur PowerShell pour les événements étendus.

Vues système

Les vues système pour les événements étendus sont les suivantes :

  • Affichages catalogue : pour plus d’informations sur les sessions d’événements qui ont été définies par CREATE EVENT SESSION.
  • Vues de gestion dynamique (DMV) : pour plus d’informations sur les sessions d’événements actives (démarrées).

SELECTs et JOIN From System Views for Extended Events in SQL Server fournit des informations sur :

  • Comment joindre les vues
  • Plusieurs requêtes utiles basées sur ces vues
  • Corrélation entre :
    • Affichez des colonnes
    • ClausesCREATE EVENT SESSION
    • Interface utilisateur de SSMS

Annexe : Requêtes pour rechercher les titulaires d’autorisations d’événement étendus

Les autorisations mentionnées dans cet article sont :

  • ALTER ANY EVENT SESSION
  • VIEW SERVER STATE
  • CONTROL SERVER

L’instruction suivante SELECT...UNION ALL retourne des lignes qui indiquent qui a les autorisations nécessaires pour créer des sessions d’événements et interroger les vues de catalogue système pour les événements étendus.

-- Ascertain who has the permissions listed in the ON clause.
-- 'CONTROL SERVER' permission includes the permissions
-- 'ALTER ANY EVENT SESSION' and 'VIEW SERVER STATE'.
SELECT 'Owner-is-Principal' AS [Type-That-Owns-Permission],
    NULL AS [Role-Name],
    prin.name AS [Owner-Name],
    PERM.permission_name COLLATE Latin1_General_CI_AS_KS_WS AS [Permission-Name]
FROM sys.server_permissions AS PERM
INNER JOIN sys.server_principals AS prin
    ON prin.principal_id = PERM.grantee_principal_id
WHERE PERM.permission_name IN (
    'ALTER ANY EVENT SESSION',
    'VIEW SERVER STATE',
    'CONTROL SERVER'
)
UNION ALL
-- Plus check for members of the 'sysadmin' fixed server role,
-- because 'sysadmin' includes the 'CONTROL SERVER' permission.
SELECT 'Owner-is-Role',
    prin.name, -- [Role-Name]
    CAST((IsNull(pri2.name, N'No members')) AS NVARCHAR(128)),
    NULL
FROM sys.server_role_members AS rolm
RIGHT JOIN sys.server_principals AS prin
    ON prin.principal_id = rolm.role_principal_id
LEFT JOIN sys.server_principals AS pri2
    ON rolm.member_principal_id = pri2.principal_id
WHERE prin.name = 'sysadmin';

HAS_PERMS_BY_NAME, fonction

L’instruction suivante SELECT signale vos autorisations. Elle s’appuie sur la fonction intégrée HAS_PERMS_BY_NAME.

En outre, si vous avez l’autorité d’emprunter temporairement l’identité d’autres connexions, vous pouvez annuler les marques de commentaire de EXECUTE AS LOGIN et REVERT les instructions, pour voir si d’autres connexions contiennent l’autorisation ALTER ANY EVENT SESSION .

--EXECUTE AS LOGIN = 'LoginNameHere';
SELECT HAS_PERMS_BY_NAME(NULL, NULL, 'ALTER ANY EVENT SESSION');
--REVERT;