Konfigurieren von SQL Server 2016 zum Zulassen von Remoteverbindungen

7

Ich habe SQL Server 2016 auf Windows Server 2016 Core installiert. Vor Ort scheint es zu funktionieren. Ich kann SQLCMD.exemich mit einigen grundlegenden Auswahlmöglichkeiten verbinden und was nicht.

Von der Fernbedienung kann ich keine Verbindung herstellen. Verwenden SQLCMD.exeauf einem Remote-Computer:

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..

Und von SQL Server Management Studio:

Geben Sie hier die Bildbeschreibung ein

In der Installation INI, von der ich installiert habe, habe ich:

TCPENABLED = 1

Ich glaube also, dass TCP aktiviert ist. Es könnte ein Firewall-Problem sein, aber ich habe ausgeführt:

Netsh Advfirewall Firewall Regelname hinzufügen = SQLPort Verzeichnis = In Protokoll = TCP Aktion = Lokalport zulassen = 1433 RemoteIP = Lokal Subnetz Profil = DOMÄNE

Welches scheint erfolgreich abgeschlossen zu haben. Gibt es weitere Schritte, um zu diagnostizieren, wo das Problem auftritt? Vielen Dank!

Mike Christensen
quelle

Antworten:

5

Herausgefunden! Da der Server auf einer Remote-VMWare ESXi-Instanz ausgeführt wird, sind die Subnetze völlig unterschiedlich. Ich habe mich verändert:

Netsh Advfirewall Firewall Regelname hinzufügen = SQLPort Verzeichnis = In Protokoll = TCP Aktion = Lokalport zulassen = 1433 RemoteIP = Lokal Subnetz Profil = DOMÄNE

Zu:

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

Und alles fing sofort an zu arbeiten. Ugh, Firewalls.

Mike Christensen
quelle
Das ist cool, würde aber empfehlen, New-NetFirewallRuledafür zu verwenden. :) Als pedantische Art von Kommentar.
Mike Fal