Autorisations nécessaires pour exécuter SQL Server Profiler

S'applique à : SQL Server Azure SQL Managed Instance

Par défaut, l’exécution de SQL Server Profiler nécessite les mêmes autorisations utilisateur que les procédures stockées Transact-SQL utilisées pour créer des traces. Pour exécuter le SQL Server Profiler, les utilisateurs doivent disposer de l'autorisation ALTER TRACE. Pour plus d’informations, consultez ACCORDER des autorisations de serveur (Transact-SQL).

Important

Les plans de requête et le texte de requête, capturés par Trace SQL ainsi que par d’autres moyens, par exemple, les vues et les fonctions de gestion dynamique (DMV, DMF), les événements étendus, peuvent contenir des informations sensibles. Par conséquent, les autorisations ALTER TRACE, SHOWPLAN et VIEW SERVER STATE des autorisations de couverture doivent être accordées uniquement aux personnes qui en ont besoin pour accomplir leurs fonctions de travail, selon le principe du moindre privilège.

Il est également recommandé d'enregistrer les fichiers Showplan ou de trace qui contiennent des événements Showplan uniquement sur un emplacement qui utilise le système de fichiers NTFS et de limiter l'accès aux utilisateurs qui sont autorisés à afficher potentiellement les informations critiques.

Important

Trace SQL et SQL Server Profiler sont dépréciés. L’espace de noms Microsoft.SqlServer.Management.Trace qui contient les objets Trace et Replay Microsoft SQL Server est également déconseillé.

Cette fonctionnalité sera supprimée dans une version future de SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.

Utilisez plutôt des événements étendus. Pour plus d’informations sur les événements étendus, consultez Démarrage rapide : Événements étendus dans SQL Server et SSMS XEvent Profiler.

Notes

Les charges de travail SQL Server Profiler pour Analysis Services sont prises en charge.

Remarque

Quand vous tentez de vous connecter à la base de données Azure SQL à partir du Générateur de profils SQL, un message d'erreur trompeur apparaît, comme suit :

  • Pour exécuter une trace sur SQL Server, vous devez être membre du rôle serveur fixe sysadmin ou bénéficier de l’autorisation ALTER TRACE.

Ce message devrait expliquer que Azure SQL Database n’est pas pris en charge par le profileur SQL Server.

Autorisations utilisées pour relire des traces

La relecture de traces exige également que l'utilisateur qui effectue cette opération dispose de l'autorisation ALTER TRACE.

Cependant, lors de la relecture, SQL Server Profiler utilise la commande EXECUTE AS si un événement Audit Login est rencontré dans la trace en cours de relecture. SQL Server Profiler utilise la commande EXECUTE AS pour emprunter l’identité de l’utilisateur associé à l’événement de connexion.

Si SQL Server Profiler rencontre un événement de connexion dans la trace en cours de relecture, les contrôles des autorisations suivants sont effectués :

  1. Utilisateur1, qui dispose de l'autorisation ALTER TRACE, lance la relecture d'une trace.

  2. Un événement de connexion pour Utilisateur2 est rencontré dans la trace relue.

  3. SQL Server Profiler utilise la commande EXECUTE AS pour emprunter l’identité de l’Utilisateur2.

  4. SQL Server tente d’authentifier l’Utilisateur2, et selon les résultats, une des actions suivantes se produit :

    1. Si l'Utilisateur2 ne peut pas être authentifié, le SQL Server Profiler retourne une erreur et poursuit la relecture de la trace en tant qu'Utilisateur1.

    2. Si l'Utilisateur2 est correctement authentifié, la relecture de la trace en tant qu'Utilisateur2 se poursuit.

  5. Les autorisations de l'Utilisateur2 sont vérifiées sur la base de données cible et selon les résultats, une des actions suivantes se produit :

    1. Si l'Utilisateur2 dispose d'autorisations sur la base de données cible, l'emprunt d'identité a réussi et la trace est relue en tant qu'Utilisateur2.

    2. Si l'Utilisateur2 ne dispose pas d'autorisations sur la base de données cible, le serveur recherche un utilisateur Invité sur cette base de données.

  6. Une vérification de l'existence d'un utilisateur Invité s'effectue sur la base de données et selon les résultats, une des actions suivantes se produit :

    1. S'il existe un compte Invité, la trace est relue en tant que compte Invité.

    2. Si aucun compte Invité n'existe sur la base de données cible, une erreur est retournée et la trace est relue en tant qu'Utilisateur1.

Le schéma suivant illustre ce processus de vérification de l'autorisation lors de la relecture de traces :

Autorisations de trace de relecture de SQL Server Profiler.

Voir aussi