Blog
Wednesday, 22. April 2020

Verbindung zur SQL Server Instanz nicht möglich – was tun?

Simon
IT-Consultant

Einer der schönen Aspekte einer SQL Server Instanz besteht darin, dass diese so konfiguriert werden kann, dass auch ein Zugriff außerhalb der Host-Umgebung auf diese möglich ist. So kann auch eine Verbindung mit einer SQL Server Instanz über das Verwaltungstool SSMS erfolgen, ohne dass der Benutzer zwingend auf der Umgebung, auf welcher die Instanz installiert ist, angemeldet sein muss. Die Instanz wird also von “außen” angesprochen.

Ein gutes Beispiel hierfür wäre eine Windows Server Umgebung, bestehend aus drei Servern. Wird nun auf einem dieser Server eine SQL Server Instanz installiert, kann diese mit Hilfe von SSMS von jedem Server aus erreicht und verwaltet werden.

Um nun eine SQL Server Instanz von “außen” ansprechbar zu machen, müssen nach der Installation gewisse Konfigurationen erfolgen. Diese sind meist nicht direkt ersichtlich und auch in den meisten Fällen der Grund für einen Verbindungsfehler. Darum wollen wir uns in diesem Beitrag etwas näher mit diesen Konfigurationen vertraut machen.

Aktivieren von TCP/IP

Der erste Schritt, um eine SQL Server Instanz für Andere sicht- und erreichbar zu machen, ist das Aktivieren von TCP/IP.

Der Zugriff vom Client auf eine SQL Server Instanz erfolgt immer über ein Netzwerk-Protokoll, auch wenn die Instanz auf dem Computer installiert ist, mit dem Sie sich verbinden. Das hier verwendete Netzwerk-Protokoll ist TCP/IP. Dieses ist allerdings standardmäßig ausgeschaltet und muss manuell aktiviert werden.

Die Aktivierung von TCP/IP erfolgt über den SQL Server Configuration Manager. Dieser wird automatisch mit einer SQL Server Instanz installiert und kann über die Windows-Suche auf dem lokalen Host der Instanz geöffnet werden.

  • Innerhalb des Configuration Managers gibt es den Reiter SQL Server Network Configuration. Öffnen Sie diesen mit einem Linksklick. Hier werden nun alle Protokolle der lokal installierten SQL Server Instanzen aufgelistet. In unserem Fall haben wir eine SQL Server 2019 Instanz mit dem Namen TEST_INSTANCE.
Mainzer Datenfabrik - Verbindung zur SQL Server Instanz nicht möglich – was tun?
  • Mit einem Klick auf Protocols for TEST_INSTANCE erscheinen auf der rechten Seite nun drei Auswahlmöglichkeiten für ein Protokoll.
  • An unterster Stelle ist TCP/IP mit dem Status disabled zu finden. Mit einem Rechtsklick auf TCP/IP kann nun die Option enable ausgewählt werden.

Um diese Einstellung zu speichern, ist ein Neustart der Instanz erforderlich. Diese erfolgt ebenfalls über den Configuration Manger:

  • Für den Neustart wählen Sie zunächst mit einem Linksklick den Reiter SQL Server Services. Auf der rechten Seite werden nun alle Services aller lokal installierten Instanzen aufgelistet. Hier kann nun mit einem Rechtsklick die Option restart für die laufende Instanz ausgewählt werden.

    (Achtung: nicht mit dem SQL Server Agent verwechseln)

Mainzer Datenfabrik - Verbindung zur SQL Server Instanz nicht möglich – was tun?

Nach dem Neustart der Instanz wurde TCP/IP erfolgreich aktiviert.

Vergeben eines Ports

Der nächste wichtige Schritt, um eine Instanz nach außen hin sichtbar zu machen, ist die Vergabe eines Ports. Ein solcher Port hilft generell dabei, parallele Kommunikationsverbindungen einer oder mehrerer Anwendungen voneinander unterscheiden zu können. Ähnlich wie IP-Adressen zur Adressierung von Rechnern in Netzwerken dienen, adressieren Ports spezifische Anwendungen und ihre Verbindungen, die auf einem Rechner laufen.

Datenpakete, die über eine IP ihr Ziel erreichen, werden von TCP zusammengesetzt und an eine Anwendung übergeben. Da nun mehrere Anwendungen, oder in diesem Fall, SQL Server Instanzen, gleichzeitig eine TCP-Verbindung aufbauen können, muss eine Zuordnung zwischen Datenpaket und Anwendung erfolgen. Zu diesem Zweck wird eine Kennung zwischen Daten und Anwendung definiert, die als Port bezeichnet wird.

Will nun eine Anwendung oder eine SQL Server Instanz zu einem Server Kontakt aufnehmen, dann vergibt TCP den Standard Port für den Empfänger-Port und vergibt einen freien Port für den Sender-Port. Hat der Server nun die Daten erhalten und eine Antwort zurückgeschickt, werden die Portnummern vertauscht. Damit kann sicher gestellt werden, dass die Daten nicht an eine falsche Anwendung übergeben werden.

Um nun also einen Port zu vergeben, auf den unsere SQL Server Instanz reagiert, verwenden wir erneut den SQL Server Configuration Manager.

  • Hierfür klappen Sie zunächst den Reiter SQL Server Network Configuration auf und wählen die Protokolle der gewünschten Instanz aus.
  • Anschließend klicken Sie auf TCP/IP und Eigenschaften. Hier wird der obere Reiter IP Addresses ausgewählt und anschließend bis zu dem Punkt IPAll gescrollt.
  • Unter TCP Port kann nun ein Port vergeben werden. Standardmäßig wird für eine Datenbankengine der Port 1433 vergeben.
Mainzer Datenfabrik - Verbindung zur SQL Server Instanz nicht möglich – was tun?

Leistungspakete der Mainzer Datenfabrik

Als professioneller SQL Server Support und zertifizierter Microsoft Partner unterstützen wir Sie in allen Fragen und individuellen Problemen rund um Ihre Serverumgebung, egal ob vor Ort oder remote. Überzeugen Sie sich selbst von unserem vielfältigen Angebot und den individuellen Leistungspaketen.

IT-Consulting SQL Server auf Azure

Konfiguration der Firewall

Ein Schritt, der oft vergessen wird und meistens die Ursache für ein Verbindungsproblem ist, ist die Freigabe des zuvor konfigurierten Ports innerhalb der Firewall.

Eine Firewall überprüft eingehende Pakete und vergleicht diese mit einer Gruppe von Regeln. Entspricht dieses Paket den vorgeschriebenen, durch die Regel definierten Standards, wird es an das TCP/IP Protokoll zur zusätzlichen Verarbeitung weitergegeben. Andernfalls verwirft die Firewall das Paket.

Damit nun eine Verbindung mit einer SQL Server Instanz von außen möglich ist, muss der Port, der der Instanz zugeordnet ist, manuell freigegeben werden, damit er “geöffnet” wird. Das bedeutet, dass die Firewall Verbindungen über diesen Port zulässt.

  • Wählen Sie hierfür unter Systemsteuerung/System und Sicherheit/Windows “Defender Firewall” aus oder geben Sie in der Windows-Suche “Windows Firewall” ein.
  • Anschließend wählen Sie Erweiterte Einstellungen.
  • Innerhalb der erweiterten Einstellungen wählen Sie auf der rechten Seite “Neue Regel…” aus. Im darauf folgenden Assistenten kann nun eine neue Regel konfiguriert werden.
  • Als Regeltyp sollte hier Port und als Protokoll TCP gewählt werden.
  • Unter “Aktion” wählen Sie anschließend “Verbindung zulassen”.

Nun kann ein Name für die neu erstellte Regel festgelegt und anschließend der Assistent fertiggestellt werden. Die neue Regel tritt nun in Kraft und der Port ist freigegeben. Jetzt ist eine Verbindung zur SQL Server Instanz ist möglich.

Wenn bereits ein Port für die gewünschte SQL Instanz konfiguriert wurde, Ihnen dieser aber unbekannt ist, kann über die T-SQL Abfrage

USE MASTER
GO
xp_readerrorlog 0, 1, N'Server is listening on'
GO

der zugewiesene Port ausgelesen werden.

Mainzer Datenfabrik - Verbindung zur SQL Server Instanz nicht möglich – was tun?

Fazit

Sollten Sie also Probleme damit haben, sich mit einer SQL Server Instanz zu verbinden, gehen Sie in Ruhe diese Checkliste durch:

  • Ist TCP/IP aktiviert?
  • Ist die Instanz einem Port zugeordnet? Wenn ja, wie lautet dieser und wird er richtig verwendet?
  • Erlaubt die Firewall eine Verbindung über diesen Port?

Interesse geweckt?

Unsere Expert:innen stehen Ihnen bei allen Fragen rund um Ihre IT Infrastruktur zur Seite.

Kontaktieren Sie uns gerne über das Kontaktformular und vereinbaren ein unverbindliches Beratungsgespräch mit unseren Berater:innen zur Bedarfsevaluierung. Gemeinsam optimieren wir Ihre Umgebung und steigern Ihre Performance!
Wir freuen uns auf Ihre Kontaktaufnahme!

Taunusstraße 72
55118 Mainz
info@madafa.de
+49 6131 3331612
Bürozeiten
Montag bis Donnerstag:
9:00 - 17:00 Uhr MEZ

Freitags:
9:30 - 14:00 Uhr MEZ
Wir sind Ihre SQL Expert:innen!
Noch Fragen? - Wir haben immer die passende Antwort für Sie!