web-dev-qa-db-fra.com

Configuration de SQL Server 2016 pour autoriser les connexions à distance

J'ai SQL Server 2016 installé sur Windows Server 2016 Core. Localement, cela semble fonctionner. Je peux me connecter en utilisant SQLCMD.exe et faites quelques sélections de base et quoi d'autre.

Depuis la télécommande, je ne peux pas me connecter. En utilisant SQLCMD.exe sur une machine distante:

sqlcmd -S boldiq_db3
Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : Named Pipes 
    Provider: Could not open a connection to SQL Server [53]. .
Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : Login timeout 
    expired.
Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : A network-related
    or instance-specific error has occurred while establishing a connection 
    to SQL Server. Server is not found or not accessible. Check if instance 
    name is correct and if SQL Server is configured to allow remote 
    connections. For more information see SQL Server Books Online..

Et à partir de SQL Server Management Studio:

enter image description here

Dans l'installation INI j'ai installé depuis, j'ai:

TCPENABLED = 1

Donc, je crois que TCP est activé. Il peut s'agir d'un problème de pare-feu, mais j'ai exécuté:

netsh advfirewall firewall add rule name = SQLPort dir = in protocol = tcp action = allow localport = 1433 remoteip = localsubnet profile = DOMAIN

Ce qui semble s'être terminé avec succès. Y a-t-il d'autres étapes pour diagnostiquer où le problème se produit? Merci!

7
Mike Christensen

Deviner! Étant donné que le serveur s'exécute sur une instance distante de VMWare ESXi, les sous-réseaux sont complètement différents. J'ai changé:

netsh advfirewall firewall add rule name = SQLPort dir = in protocol = tcp action = allow localport = 1433 remoteip = localsubnet profile = DOMAIN

À:

netsh advfirewall firewall add rule name = SQLPort dir = in protocol = tcp action = allow localport = 1433 remoteip = any profile = DOMAIN

Et tout a immédiatement commencé à fonctionner. Pouah, pare-feu.

5
Mike Christensen