Configurer des règles de pare-feu avant d’exécuter le débogueur T-SQL
S'applique à : SQL Server
Vous devez configurer des règles de Pare-feu Windows pour permettre le débogage Transact-SQL en cas de connexion à une instance du Moteur de base de données qui s'exécute sur un autre ordinateur que l'Éditeur de requête du Moteur de base de données.
Configurer le débogueur Transact-SQL
Le débogueur Transact-SQL inclut des composants côté serveur et côté client. Les composants du débogueur côté serveur sont installés avec chaque instance du moteur de base de données SQL Server. Les composants côté client du débogueur sont inclus :
Quand vous installez Microsoft Visual Studio 2019 ou ultérieur
Quand vous installez SQL Server Data Tools (SSDT) à partir du téléchargement Web
Aucune configuration particulière n’est requise pour exécuter le débogueur Transact-SQL quand SQL Server Data Tools s’exécute sur le même ordinateur que l’instance du Moteur de base de données SQL Server. Toutefois, pour exécuter le débogueur Transact-SQL lorsqu'il est connecté à une instance distante du Moteur de base de données, vous devez activer des règles de programme et de port dans le Pare-feu Windows sur les deux ordinateurs. Si vous obtenez des erreurs lors de la tentative d'ouverture d'une session de débogage distant, assurez-vous que les règles suivantes de pare-feu sont définis sur votre ordinateur.
Utilisez l'application Pare-feu Windows avec fonctions avancées de sécurité pour gérer les règles de pare-feu. Dans Windows 7 et Windows Server 2008 R2, ouvrez Panneau de configuration, Pare-feu Windows, puis sélectionnez Paramètres avancés. Dans Windows Server 2008 R2 vous pouvez aussi ouvrir Gestionnaire de services, développer Configuration dans le volet gauche, puis développer Pare-feu Windows avec fonctions avancées de sécurité.
Attention
L'activation des règles dans le Pare-feu Windows peut exposer votre ordinateur à des atteintes à la sécurité que le pare-feu est conçu pour bloquer. L'activation des règles pour le débogage distant débloque les ports et les programmes répertoriés dans cette rubrique.
Règles de pare-feu sur le serveur
Sur l'ordinateur qui exécute l'instance du Moteur de base de données, utilisez le Pare-feu Windows avec fonctions avancées de sécurité pour spécifier les informations suivantes :
Ajoutez une règle de programme de trafic entrant pour
sqlservr.exe
. Vous devez avoir une règle pour chaque instance qui doit prendre en charge les sessions de débogage distant.Dans Pare-feu Windows avec fonctions avancées de sécurité, dans le volet gauche, cliquez avec le bouton droit sur Règles de trafic entrant, puis sélectionnez Nouvelle règle dans le volet Action.
Dans la boîte de dialogue Type de règle, sélectionnez Programme, puis sélectionnez Suivant.
Dans la boîte de dialogue Programme, sélectionnez Ce chemin d’accès au programme :, puis entrez le chemin complet vers
sqlservr.exe
pour cette instance. Par défaut,sqlservr.exe
est installé dansC:\Program Files\Microsoft SQL Server\MSSQL16.<InstanceName>\MSSQL\Binn
, où<InstanceName>
estMSSQLSERVER
pour l’instance par défaut, et le nom de l’instance pour toute instance nommée.Dans la boîte de dialogue Action, sélectionnez Autoriser la connexion, puis sélectionnez Suivant.
Dans la boîte de dialogue Profil, sélectionnez des profils qui décrivent l’environnement de connexion à l’ordinateur quand vous voulez ouvrir une session de débogage avec l’instance, puis sélectionnez Suivant.
Dans la boîte de dialogue Nom, entrez un nom et une description pour cette règle, puis sélectionnez Terminer.
Dans la liste Règles de trafic entrant, cliquez avec le bouton droit sur la règle que vous avez créée, puis sélectionnez Propriétés dans le volet d’action.
Sélectionnez l'onglet Protocoles et ports .
Sélectionnez TCP dans la zone Type de protocole :, sélectionnez Ports dynamiques RPC dans la zone Port local :, sélectionnez Appliquer, puis sélectionnez OK.
Ajoutez une règle de programme entrant pour
svchost.exe
afin d'activer les communications DCOM (modèle DCOM (Distributed Component Object Model)) à partir de sessions de débogage distantes.Dans Pare-feu Windows avec fonctions avancées de sécurité, dans le volet gauche, cliquez avec le bouton droit sur Règles de trafic entrant, puis sélectionnez Nouvelle règle dans le volet Action.
Dans la boîte de dialogue Type de règle, sélectionnez Programme, puis sélectionnez Suivant.
Dans la boîte de dialogue Programme, sélectionnez Ce chemin d’accès au programme :, puis entrez le chemin complet vers
svchost.exe
. Par défaut,svchost.exe
est installé dans%systemroot%\System32\svchost.exe
.Dans la boîte de dialogue Action, sélectionnez Autoriser la connexion, puis sélectionnez Suivant.
Dans la boîte de dialogue Profil, sélectionnez des profils qui décrivent l’environnement de connexion à l’ordinateur quand vous voulez ouvrir une session de débogage avec l’instance, puis sélectionnez Suivant.
Dans la boîte de dialogue Nom, entrez un nom et une description pour cette règle, puis sélectionnez Terminer.
Dans la liste Règles de trafic entrant, cliquez avec le bouton droit sur la règle que vous avez créée, puis sélectionnez Propriétés dans le volet d’action.
Sélectionnez l'onglet Protocoles et ports .
Sélectionnez TCP dans la zone Type de protocole :, sélectionnez Mappeur de point de terminaison RPC dans la zone Port local :, sélectionnez Appliquer, puis sélectionnez OK.
Si la stratégie de domaine exige que les communications réseau s'effectuent par le biais du protocole IPsec, vous devez également ajouter des règles entrantes ouvrant les ports UDP 4500 et UDP 500.
Règles de pare-feu sur le client
Sur l'ordinateur qui exécute l'éditeur de requêtes du moteur de base de données, configurez le pare-feu Windows pour autoriser le débogage à distance.
Si vous obtenez des erreurs lors de la tentative d'ouverture d'une session de débogage distant, vous pouvez configurer manuellement les exceptions de port et programme à l'aide du Pare-feu Windows avec fonctions avancées de sécurité pour configurer des règles de pare-feu :
Ajouter une entrée de programme pour svchost :
Dans Pare-feu Windows avec fonctions avancées de sécurité, dans le volet gauche, cliquez avec le bouton droit sur Règles de trafic entrant, puis sélectionnez Nouvelle règle dans le volet Action.
Dans la boîte de dialogue Type de règle, sélectionnez Programme, puis sélectionnez Suivant.
Dans la boîte de dialogue Programme, sélectionnez Ce chemin d’accès au programme :, puis entrez le chemin complet vers
svchost.exe
. Par défaut,svchost.exe
est installé dans%systemroot%\System32\svchost.exe
.Dans la boîte de dialogue Action, sélectionnez Autoriser la connexion, puis sélectionnez Suivant.
Dans la boîte de dialogue Profil, sélectionnez des profils qui décrivent l’environnement de connexion à l’ordinateur quand vous voulez ouvrir une session de débogage avec l’instance, puis sélectionnez Suivant.
Dans la boîte de dialogue Nom, entrez un nom et une description pour cette règle, puis sélectionnez Terminer.
Dans la liste Règles de trafic entrant, cliquez avec le bouton droit sur la règle que vous avez créée, puis sélectionnez Propriétés dans le volet d’action.
Sélectionnez l'onglet Protocoles et ports .
Sélectionnez TCP dans la zone Type de protocole :, sélectionnez Mappeur de point de terminaison RPC dans la zone Port local :, sélectionnez Appliquer, puis sélectionnez OK.
Ajoutez une entrée de programme pour l'application qui héberge l'Éditeur de requête du Moteur de base de données SQL Server Data Tools. Si vous devez ouvrir des sessions de débogage à distance à partir de plusieurs installations de SQL Server Data Tools sur le même ordinateur, vous devez ajouter une règle de programme pour les deux :
Dans Pare-feu Windows avec fonctions avancées de sécurité, dans le volet gauche, cliquez avec le bouton droit sur Règles de trafic entrant, puis sélectionnez Nouvelle règle dans le volet Action.
Dans la boîte de dialogue Type de règle, sélectionnez Programme, puis sélectionnez Suivant.
Dans la boîte de dialogue Programme , sélectionnez Ce chemin d'accès du programme : , puis entrez une de ces trois valeurs.
Pour SQL Server Data Tools , entrez le chemin complet vers
devenv.exe
:Par défaut, le fichier
devenv.exe
pour Visual Studio 2022 se trouve dansC:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE
.Par défaut, le fichier
devenv.exe
pour Visual Studio 2019 se trouve dansC:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE
.Vous pouvez trouver le chemin vers
devenv.exe
dans le raccourci que vous utilisez pour lancer SQL Server Data Tools. Cliquez avec le bouton droit sur le raccourci et choisissez Propriétés. L'exécutable et le chemin d'accès sont répertoriés dans la zone Cible .
Dans la boîte de dialogue Action, sélectionnez Autoriser la connexion, puis sélectionnez Suivant.
Dans la boîte de dialogue Profil, sélectionnez des profils qui décrivent l’environnement de connexion à l’ordinateur quand vous voulez ouvrir une session de débogage avec l’instance, puis sélectionnez Suivant.
Dans la boîte de dialogue Nom, entrez un nom et une description pour cette règle, puis sélectionnez Terminer.
Dans la liste Règles de trafic entrant, cliquez avec le bouton droit sur la règle que vous avez créée, puis sélectionnez Propriétés dans le volet d’action.
Sélectionnez l'onglet Protocoles et ports .
Sélectionnez TCP dans la zone Type de protocole :, sélectionnez Ports dynamiques RPC dans la zone Port local :, sélectionnez Appliquer, puis sélectionnez OK.
Configuration requise pour le démarrage du débogueur
Toute tentative de démarrer le débogueur Transact-SQL doit également respecter les conditions suivantes :
SQL Server Data Tools doit être exécuté sous un compte Windows membre du rôle serveur fixe administrateur système.
La fenêtre de l’éditeur de requête du moteur de base de données doit être connectée en utilisant une connexion via l’authentification Windows ou l’authentification SQL Server qui est membre du rôle serveur fixe sysadmin.
La fenêtre de l'éditeur de requêtes du moteur de base de données doit être connectée à une instance du moteur de base de données SQL Server. Vous ne pouvez pas exécuter le débogueur quand la fenêtre de l’éditeur de requête est connectée à une instance en mode mono-utilisateur.
Le serveur doit communiquer avec le client par le biais de RPC. Le compte sous lequel le service SQL Server est exécuté doit avoir des autorisations d’accès authentifiées au client.