1047 : Impossible d’établir une connexion à l’instance SQL Server [NomServeur\Instance]
Symptôme
Lorsque vous essayez de vous connecter à une base de données système BarTender distante, vous pouvez recevoir le message d’erreur suivant :
#1047 : Impossible d’établir une connexion à l’instance SQL-Server [NomServeur\Instance].
S’applique à
BarTender 2019 et versions ultérieures
Diagnostic
- Installez également SQL Server Management Studio sur le poste client.
- Connectez-vous depuis SQL Management Studio à l’instance SQL Server centrale en utilisant les mêmes identifiants que ceux utilisés via l’assistant Base de données système.
Si cela échoue, cela peut indiquer que SQL Server n’est pas correctement configuré.
Solution
Configurer les autorisations nécessaires
- Activez l’authentification en mode mixte côté serveur si vous prévoyez d’utiliser des identifiants SQL Server :
- Dans SQL Server Management Studio > Explorateur d’objets, faites un clic droit sur le serveur, puis cliquez sur Propriétés.
- Dans l’onglet Sécurité, sous Authentification du serveur, sélectionnez le nouveau mode d’authentification du serveur, puis cliquez sur OK
- Attribuez les autorisations nécessaires au compte utilisé pour se connecter à la base de données système BarTender. Consultez l’article lié pour plus d’informations sur la configuration des autorisations du compte : Configurer les autorisations pour une base de données système (Vidéo - 5:45)
- Déterminez si la connexion sera effectuée avec des identifiants Windows ou SQL Server (les identifiants SQL Server sont recommandés).
- Si les problèmes persistent, essayez les recommandations de configuration suivantes :
Si la base de données système a été configurée sur l’ordinateur A et que vous rencontrez des problèmes pour vous connecter à la base de données système distante depuis l’ordinateur B (en édition EA, avec SQL Express), essayez les astuces ci-dessous pour résoudre le problème.
- Au lieu d’utiliser le nom de l’instance, essayez d’utiliser l’adresse IP et le port (généralement 1433) lors de la connexion à l’instance SQL Server distante.
- Si vous utilisez le nom de l’instance, SQL Server nécessite une configuration préalable (voir ci-dessous).
Activer les connexions distantes sur l’instance SQL Server
- Ouvrez SQL Management Studio.
- Faites un clic droit sur le nom du serveur dans le panneau de gauche et sélectionnez Propriétés, puis Connexions et assurez-vous que la case Autoriser les connexions distantes à ce serveur est cochée comme ci-dessous.
Configurer SQL Express Server pour écouter sur un port statique
- Ouvrez SQL Server Configuration Manager et cliquez sur Services SQL Server dans le panneau de gauche.
- Utilisez la colonne ID de processus (au centre) pour repérer la liste des IDs de processus pour chaque service en cours d’exécution. Identifiez le PID dans la ligne correspondant à SQL Server et le port sur lequel ce PID écoute en tapant la commande suivante dans l’invite de commandes :
netstat -ano | find /i “[Numéro-PID-De-SQL-Server]"
Selon les détails affichés dans l’image ci-dessus, la syntaxe est la suivante :netstat -ano | find /i “668”
- Les résultats sont affichés ci-dessous :
- Il n’y a aucun résultat à la commande exécutée à l’étape 3 car le protocole TCP/IP est désactivé et doit être activé. Dans SQL Server Configuration Manager, cliquez sur Configuration du réseau SQL Server dans le panneau de gauche et faites un clic droit sur le protocole TCP/IP. Sélectionnez Activer.
- Redémarrez le service SQL Server et identifiez l’ID de processus attribué au service SQL.
- Dans l’invite de commandes, exécutez la commande :
netstat -ano | find /i “23444”
- Les résultats sont affichés ci-dessous :
- Dans SQL Server Configuration Manager, cliquez sur Configuration du réseau SQL Server dans le panneau de gauche et faites un clic droit sur le protocole TCP/IP.
- Allez dans Propriétés > Adresse IP et faites défiler jusqu’à la section IPAll. Supprimez la valeur de Ports TCP dynamiques (ne mettez pas zéro 0).
- Saisissez le port 1433 pour Port TCP. Cliquez sur Appliquer puis OK.
- Redémarrez le service SQL Server, identifiez le nouvel ID de processus attribué au service SQL, puis dans l’invite de commandes, exécutez la commande :
netstat -ano | find /i “5088”
- Les résultats sont affichés ci-dessous :
À ce stade, SQL Express est configuré pour écouter sur le port standard 1433.
Activer le service SQL Server Browser
- Ouvrez SQL Server Configuration Manager et cliquez sur Services SQL Server dans le panneau de gauche. Faites un clic droit sur SQL Server Browser service et sélectionnez Propriétés.
- Allez dans l’onglet Service, et pour l’option Mode de démarrage, changez le type de démarrage en Automatique. Cliquez sur Appliquer et OK.
- Cliquez sur le bouton Démarrer pour lancer le service SQL Browser.
- Vérifiez que le service SQL Server Browser est bien en cours d’exécution, comme illustré ci-dessous.
Configurer le pare-feu pour autoriser le trafic réseau lié à SQL Server
Quatre exceptions doivent être configurées dans le Pare-feu Windows pour permettre l’accès à SQL Server :
- Une exception de port pour le port TCP 1433. Dans l’assistant Nouvelle règle de trafic entrant, utilisez les informations suivantes pour créer une exception de port :
- Sélectionnez Port.
- Sélectionnez TCP et indiquez le port 1433.
- Autorisez la connexion.
- Choisissez les trois profils (Domaine, Privé & Public).
- Nommer la règle SQL – TCP 1433.
- Une exception de port pour le port UDP 1434. Cliquez à nouveau sur Nouvelle règle et utilisez les informations suivantes pour créer une autre exception de port :
- Sélectionnez Port.
- Sélectionnez UDP et indiquez le port 1434.
- Autorisez la connexion.
- Choisissez les trois profils (Domaine, Privé & Public).
- Nommer la règle SQL – UDP 1434.
- Une exception de programme pour sqlservr.exe. Cliquez à nouveau sur Nouvelle règle et utilisez les informations suivantes pour créer une exception de programme :
- Sélectionnez Programme.
- Cliquez sur Parcourir et sélectionnez sqlservr.exe à cet emplacement : C:\Program Files\Microsoft SQL Server\MSSQL11.[NOM_INSTANCE]\MSSQL\Binn\sqlservr.exe où [NOM_INSTANCE] est le nom de votre instance SQL.
- Autorisez la connexion.
- Choisissez les trois profils (Domaine, Privé & Public).
- Nommer la règle SQL – sqlservr.exe.
- Une exception de programme pour sqlbrowser.exe. Cliquez à nouveau sur Nouvelle règle et utilisez les informations suivantes pour créer une autre exception de programme :
- Sélectionnez Programme.
- Cliquez sur Parcourir pour sélectionner sqlbrowser.exe à cet emplacement : C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe.
- Autorisez la connexion.
- Choisissez les trois profils (Domaine, Privé & Public).
- Nommer la règle SQL – sqlbrowser.exe.
Comme vous pouvez le constater, de nombreuses configurations peuvent être nécessaires pour permettre les connexions distantes via le nom d’instance SQL Server (ce qui pose également un problème de sécurité). Il est donc recommandé d’utiliser l’adresse IP et le port.