Ich bin darauf gestoßen, weil ich gerade Probleme beim Erstellen einer Remoteverbindung hatte und nicht verstehen konnte, warum das Einrichten des 1433-Ports in der Firewall nicht funktioniert. Ich habe jetzt endlich das ganze Bild, also dachte ich, ich sollte es teilen.
Zuallererst ist es ein Muss, "TCP / IP" mit dem SQL Server Configuration Manager unter Protokolle für SQLEXPRESS zu aktivieren!
Wenn eine benannte Instanz verwendet wird (in diesem Fall "SQLExpress"), überwacht dies einen dynamischen Port. Um diesen dynamischen Port zu finden, haben Sie mehrere Möglichkeiten. um ein paar zu nennen:
Überprüfung ERRORLOG
von SQL Server in '{MS SQL Server Path}\{MS SQL Server instance name}\MSSQL\Log'
(im Inneren finden Sie eine Zeile ähnlich der folgenden: "2013-07-25 10:30:36.83 Server Server is listening on [ 'any' <ipv4> 51118]"
-> 51118 ist in diesem Fall der dynamische Port.
Überprüfung der Registrierung : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{MSSQL instance name}\MSSQLServer\SuperSocketNetLib\Tcp\IPAll
, für meinen Fall TcpDynamicPorts=51118
.
Edit : {MSSQL instance name}
ist so etwas wie: MSSQL10_50.SQLEXPRESS
nicht nurSQLEXPRESS
Wenn Sie diesen TCP-Port in der Firewall zulassen und eine Remoteverbindung herstellen, indem Sie Folgendes übergeben: "x.x.x.x,51118"
(wobei xxxx die Server-IP ist), wird dies bereits zu diesem Zeitpunkt behoben.
Aber dann wollte ich eine Remoteverbindung herstellen, indem ich den Instanznamen übergab (zB :) x.x.x.x\SQLExpress
. Dies ist der Zeitpunkt, an dem der SQL Browser-Dienst ins Spiel kommt. Dies ist die Einheit, die den Instanznamen in den 51118-Port auflöst. Der SQL Browser-Dienst überwacht den UDP-Port 1434 (Standard und statisch), daher musste ich dies auch in der Firewall des Servers zulassen.
Um die eigentliche Antwort ein wenig zu erweitern: Wenn jemand anderes keine dynamischen Ports mag und einen statischen Port für seine SQL Server-Instanz möchte, sollte dieser Link verwendet werden .