J'ai un Azure VM avec Windows Server 2012, sur lequel je viens d'installer le composant du moteur de base de données SQL Server 2012 Express. Ensuite, j'ai suivi les instructions ici pour vous connecter. à distance avec SQL Server Management Studio.
- Créer un noeud final TCP pour la machine virtuelle)
- Open TCP ports du pare-feu Windows
- Configurez SQL Server pour écouter sur le protocole TCP
- Configurer SQL Server pour l'authentification en mode mixte
- Créer des connexions d'authentification SQL Server
- Déterminer le nom DNS de la machine virtuelle
- Se connecter au moteur de base de données à partir d'un autre ordinateur
Après la septième étape, j'ai reçu l'erreur suivante:
Une erreur liée au réseau ou à une instance spécifique s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou inaccessible. Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions à distance. (fournisseur: fournisseur de canaux nommés, erreur: 40 - Impossible d'ouvrir une connexion à SQL Server) (Microsoft SQL Server, erreur: 53)
Que dois-je configurer d'autre avant de me connecter à distance?
J'ai suivi les instructions de dépannage ici . Chaque bloc-notes ci-dessous est une étape décrite par ce lien.
Confirmez que l'instance du moteur de base de données SQL Server est installée et en cours d'exécution.
Terminé. Nous avons installé SQL Server Express et il s'exécute sous une instance nommée appelée SQLEXPRESS.
Si vous essayez de vous connecter à une instance nommée, assurez-vous que le service SQL Server Browser est en cours d'exécution.
Terminé. Nous avons suivi les étapes ici pour activer le service SQL Server Browser.
Obtenez l'adresse IP de l'ordinateur.
Terminé. Nous les utiliserons plus tard pour tester la connectivité et peut-être pour configurer un port statique pour SQLEXPRESS.
10.241.62.155
fe80 :: 45c: 8c29: e19f: f78b% 15
Obtenez le TCP numéro de port utilisé par SQL Server.
Terminé. Les journaux du serveur SQL Server Management Studio indiquaient que le serveur était à l'écoute sur le port 49169.
Activer les protocoles
Terminé. Nous avions déjà activé TCP/IP dans le gestionnaire de configuration, mais nous avons redémarré le service SQL Server au cas où.
Test de la connectivité TCP/IP
Terminé. Nous avons utilisé tcping.exe pour tester la connectivité (le cmd ping ne fonctionne pas rapidement avec Azure.) Nous avons pu nous connecter au port 80.
Tester une connexion locale
Terminé. Nous avons utilisé sqlcmd.exe à partir de la commande Invite et nous avons pu nous connecter localement via TCP avec un nom d'utilisateur et un mot de passe.
Ouverture d'un port dans le pare-feu
Nous avons ouvert le port sur lequel nous écoutons SQLEXPRESS. Les journaux du serveur (ci-dessus) ont montré que SQLEXPRESS était à l'écoute sur le port 49169, mais il ne s'agit que de l'un des nombreux ports dynamiques. Nous avons donc souhaité configurer le port statique 1435.
Les instructions de dépannage indiquent également:
Si vous vous connectez à une instance nommée ou à un port autre que TCP port 1433, vous devez également ouvrir le Port UDP 1434 pour le service SQL Server Browser.
Comme nous connectons SQLEXPRESS (une instance nommée), nous devions ouvrir le port 1434 pour UDP.
Des recherches supplémentaires sur la connexion à des instances nommées ont révélé des problèmes de ports dynamiques. La raison pour laquelle nous utilisons le port 1435 (statique) au lieu du port 49169 (une des nombreuses options efficaces).
Les instances de SQL Server Express, SQL Server Compact et les instances nommées du moteur de base de données utilisent des ports dynamiques. Pour configurer ces instances afin qu'elles utilisent un port spécifique, voir Configurer un serveur pour qu'il écoute sur un port spécifique TCP (gestionnaire de configuration SQL Server). et ici .
Terminé. Nous sommes allés dans Gestionnaire de configuration SQL> Configuration réseau SQL Server> Protocoles pour SQLEXPRESS> TCP/IP, nous avons procédé comme suit.
Onglet Protocole> Tout écouter> NO.
Onglet Adresses IP> pour chaque adresse répertoriée
Après avoir redémarré le service SQLEXPRESS, nous avons de nouveau consulté les journaux de SQL Server Management Studio et constaté que le serveur était à l’écoute sur le port 1435! Hourra!
Tester la connexion
Terminé. Nous avons ouvert SQL Server Management Studio sur notre ordinateur local (non Azure) et connecté.
Succès.
Voici les trois pages Web sur lesquelles nous avons trouvé la réponse. La partie la plus difficile a été de configurer des ports statiques pour SQLEXPRESS.
Approvisionnement d'une machine virtuelle SQL Server sous Windows Azure . Ces instructions initiales ont fourni 25% de la réponse.
Comment résoudre les problèmes de connexion au moteur de base de données SQL Server . En lisant cela attentivement, nous avons obtenu 50% de la réponse.
Comment configurer le serveur SQL pour écouter sur différents ports sur différentes adresses IP? . Cela permettait de configurer des ports statiques pour des instances nommées (par exemple, SQLEXPRESS.). Cela nous a pris 25% du chemin final pour obtenir la réponse.
Le fait que vous obteniez une erreur du fournisseur Names Pipes nous indique que vous n'utilisez pas le protocole TCP/IP lorsque vous essayez d'établir la connexion. Essayez d’ajouter le préfixe "tcp" et de spécifier le numéro de port:
tcp:name.cloudapp.net,1433
Moi aussi j'ai eu du mal avec quelque chose de similaire. Je suppose que votre problème actuel est de vous connecter à une instance SQL Express s'exécutant sur un ordinateur différent. Les étapes à suivre peuvent être résumées comme suit:
À ce stade, vous devriez pouvoir vous connecter à distance, à l'aide de l'authentification SQL, de l'utilisateur "sqlUser", du mot de passe "sql" à l'instance SQL Express configurée comme ci-dessus. Un dernier conseil et un moyen simple de vérifier cela consiste à créer un fichier texte vide avec l’extension .UDL, dites "Test.UDL" sur votre bureau. Double-cliquer pour éditer ce fichier appelle la boîte de dialogue Propriétés de Microsoft Data Link avec laquelle vous pouvez rapidement tester votre connexion SQL distante.