
Nachdem ich im Internet ein paar Mal nach der besten Methode gesucht habe, um die SQL Server-Konnektivität durch die Windows-Firewall zu öffnen, habe ich noch keine optimale Methode dafür gefunden. Kennt jemand eine garantierte Methode, um herauszufinden, auf welchen Ports SQL ausgeführt wird, damit man sie in der Windows-Firewall öffnen kann?
Antwort1
Wenn Sie nur eine Instanz von SQL Server ausführen und der TCP/IP-Transport für nicht lokale Verbindungen aktiviert ist, wird dieser wahrscheinlich auf dem Standard-TCP-Port 1433 lauschen.
Wenn Sie mehrere Instanzen oder andere Komplikationen haben, die über „eine einzelne Standardinstanz“ hinausgehen, kann es komplizierter werden. Sie müssen die Ports für jede Instanz festlegen (standardmäßig sind sie halb zufällig, was für die Firewall-Konfiguration im Allgemeinen nicht hilfreich ist) und müssen auch den SQL-Browserdienst öffnen (der normalerweise auf UDP-Port 1434 lauscht, obwohl auch dieser neu konfiguriert werden kann).
Es gibt einen ziemlich detaillierten Satz von Hinweisen zu SQL Server und Firewalls unterhttp://msdn.microsoft.com/en-us/library/cc646023.aspx
Antwort2
Sie müssen den Browserdienst starten, um nicht standardmäßige Instanzen aufzulösen. Darüber hinaus ermöglicht das Öffnen von UDP 1434 die Auflösung der benannten Instanzen nach Namen statt nach Port, sodass Sie die Ports nicht verwenden müssen. Wenn Sie UDP 1434 nicht dauerhaft öffnen möchten oder einen DBA vor Ort haben, der eine lokale Verbindung herstellen kann, können Sie ihn bitten, eine Verbindung über SQL Server Mgmt Studio ODER SQLCMD herzustellen und die Serververbindung wie folgt anzugeben:
tcp:Servername\Instanzname
Durch das Präfix „tcp“ wird eine TCP-Verbindung erzwungen. Sobald dies erledigt ist, können Sie sich mit Ihrer benannten Instanz verbinden und sys.dm_exec_connections abfragen, um den Port zu finden, auf dem die nicht standardmäßige Instanz läuft, wie folgt:
SELECT local_tcp_port FROM sys.dm_exec_connections WHERE session_id = @@SPID
Antwort3
Der Standardport für SQL Server ist 1433
Antwort4
Vielleicht ist es sinnvoll, den Standardport Ihrer Instanz zu ändern. Haben Sie gesehenhttp://blogs.msdn.com/b/dataaccesstechnologies/archive/2010/03/03/running-sql-server-default-instance-on-a-non-default-or-non-standard-tcp-port-tips-for-making-application-connectivity-work.aspx?