SQL Server im Web, Teil 4: Fernzugriff per SSMS

In den ersten drei Teilen dieser Beitragsreihe haben wir einen Webserver aufgesetzt, den SQL Server installiert und das SQL Server Management Studio hinzugefügt. Damit können wir über die Remotedesktopverbindung auf den Server zugreifen und dort den SQL Server administrieren. Wir wollen aber nicht immer die Remotedesktopverbindung nutzen, sondern direkt von unserem lokalen Rechner aus auf den SQL Server auf dem Webserver zugreifen. Das wird schon etwas spannender als die Einrichtung und der Zugriff vom SQL Server Management Studio direkt auf dem Webserver. Warum? Weil wir unterschiedliche Ports verwenden müssen und diese je nach Anwendungsfall standardmäßig freigeschaltet sind oder auch nicht. Was es damit auf sich hat, erläutern wir in diesem Beitrag.

TCP/IP und die Ports

Netzwerkverbindungen werden seit gefühlten Ewigkeiten über das TCP/IP-Protokoll durchgeführt. Damit wir beispielsweise von unserem lokalen Rechner überhaupt auf den Webserver zugreifen können, egal ob wir über die Remotedesktopverbindung die Benutzeroberfläche sehen wollen oder vom SQL Server Management Studio auf dem lokalen Rechner Daten einer SQL Server-Datenbank lesen wollen, müssen verschiedene Dienste auf dem Webserver auf verschiedenen Kanälen auf Anfragen von unserem lokalen Rechner „lauschen“.

Damit man nicht beliebig von außen auf unser System zugreifen kann, gibt es die sogenannte Firewall, die den Zugriff reguliert. Ist die Firewall aktiviert und sind keine Kanäle geöffnet, können wir praktisch nicht von außen über das Netzwerk auf den Webserver zugreifen.

Die Firewall sollte immer aktiviert sein, aber es sollten nicht alle Kanäle geöffnet sein. Diese Kanäle werden Ports genannt, jeder mit einer bestimmten Nummer versehen, die wir für den Zugriff von außen öffnen können.

Einige dieser Ports sind standardmäßig geöffnet, andere müssen wir erst noch freigeben. Die Ports sind wiederum verschiedenen Diensten zugeordnet. Für Remoteverbindungen verwendet Windows beispielsweise den Port 3389.

Während dieser Port für den Zugriff über das Programm Remotedesktopverbindung standardmäßig geöffnet ist, müssen wir den Port für den Zugriff auf den SQL Server erst noch freigeben. Dieser Port hat normalerweise die Nummer 1433. Man kann aber auch einen anderen Port nutzen, beispielsweise um Zugriffe zu erschweren.

Die Nummer 1433 ist üblicherweise der Standardinstanz des SQL Servers vorbehalten. Weitere Instanzen erhalten je nach Konfiguration dynamisch Ports zugewiesen.

Das ist aber für uns erst einmal uninteressant, da wir den SQL Server 2022 Express wie im Beitrag SQL Server im Web, Teil 2: SQL Server Express installieren (www.access-im-unternehmen.de/1504) beschrieben als Standardinstanz installiert haben.

Verbindung zum SQL Server vom Client-Rechner aufbauen

Wir können uns zwar nun per Remotedesktopverbindung auf den VPS-Rechner aufschalten, aber eigentlich wollen wir dort eine SQL Server-Datenbank erstellen, auf die wir vom Client-Rechner oder auch von anderen Geräten aus zugreifen können. Wir probieren das erst einmal ganz naiv aus, ohne irgendwelche Änderungen am System vorzunehmen.

Dazu starten wir SQL Server Management Studio und finden direkt den Anmeldedialog aus Bild 1 vor. Hier geben wir unter Servername die IP des Webservers ein. Bei der Authenitifizierungsmethode bleiben uns nicht viele Möglichkeiten: Da der Webserver nicht in der gleichen Domäne liegt wie unser Rechner, müssen wir die SQL Server-Authentifizierung wählen.

Der Verbindungsdialog

Bild 1: Der Verbindungsdialog

Bei der Installation wurde automatisch der Benutzer sa mit SysAdmin-Rechten angelegt, den wir hier für die Anmeldung benutzen wollen. Außerdem geben wir das passende Kennwort ein und betätigen dann die Verbinden-Schaltfläche.

Es kann sein, dass noch nicht alle Voraussetzungen für die Verbindung erfüllt sind. Dann erscheint beispielsweise eine Meldung wie die aus Bild 2. Hier sehen wir, dass der Server nicht gefunden wurde oder das nicht auf diesen zugegriffen werden kann.

Fehlermeldung beim Versuch, eine Verbindung aufzubauen

Bild 2: Fehlermeldung beim Versuch, eine Verbindung aufzubauen

Das wir grundsätzlich auf den Webserver zugreifen können, wissen wir bereits – wir haben, wie im Beitrag SQL Server im Web, Teil 1: Webserver (www.access-im-unternehmen.de/1503) beschrieben, schon per Remotedesktopverbindung auf den Server zugegriffen.

Wir können das nochmal testen, indem wir die Eingabeaufforderung öffnen und dort den Befehl Ping mit der Angabe der IP des Webservers absetzen. Dies liefert das Ergebnis aus Bild 3.

Die Verbindung zum Webserver funktioniert grundsätzlich.

Bild 3: Die Verbindung zum Webserver funktioniert grundsätzlich.

Anforderungen an die Remote-Verbindung

Also schauen wir uns an, ob die Anforderungen an eine Remote-Verbindung zum SQL Server erfüllt sind. Dabei konzentrieren wir uns auf die folgenden beiden:

  • TCP/IP-Protokoll für den SQL Server aktivieren
  • Port 1433 in der Firewall freischalten

Diese beiden Schritte führen wir direkt auf dem Webserver aus. Dazu müssen wir uns, wie im oben genannten Beitrag beschrieben, per Remotedesktopverbindung auf den Webserver schalten.

Es kann noch weitere Gründe geben, dass eine Verbindung nicht möglich ist – diese sind jedoch so individuell, dass wir sie nicht an dieser Stelle beschreiben.

TCP/IP-Protokoll für SQL Server aktivieren

Um das TCP/IP-Protokoll für den SQL Server zu aktivieren, starten wir auf dem Webserver den SQL Server 2022-Konfigurations-Manager. Diesen finden wir wie in Bild 4 durch Eingabe von SQL Server in der Windows-Suche.

Starten des SQL Server 2022-Konfigurations-Managers

Bild 4: Starten des SQL Server 2022-Konfigurations-Managers

Nach dem Start navigieren wir im Fenster SQL Server Configuration Manager zum Eintrag Protokolle für “MSSQLSERVER“. Hier finden wir den Eintrag TCP/IP, der gegebenenfalls noch deaktiviert ist. Diesen aktivieren wir über den Befehl Aktivieren des Kontextmenüs (siehe Bild 5).

Aktivieren des TCP/IP-Protokolls

Bild 5: Aktivieren des TCP/IP-Protokolls

Danach erscheint eine Meldung mit dem Hinweis, dass der Dienst neu gestartet werden muss (siehe Bild 6).

Ein Neustart ist nötig.

Bild 6: Ein Neustart ist nötig.

Diesen Neustart können wir ebenfalls im SQL Server 2022-Konfigurations-Manager erledigen. Dazu klicken wir oben auf SQL Server-Dienste und sehen dann in der rechten Liste den Eintrag SQL Server (MSSQLSERVER) (siehe Bild 7). Hier führen wir den Befehl Neu starten aus dem Kontextmenü aus.

Neustart des SQL Server-Dienstes

Bild 7: Neustart des SQL Server-Dienstes

Anschließend können wir erneut versuchen, uns vom SQL Server Management Studio des lokalen Rechners mit dem SQL Server auf dem Webserver zu verbinden. Sollte dies immer noch fehlschlagen, schauen wir uns die nächste Option an.

Port 1433 in der Firewall freischalten

Es kann noch sein, dass der Port 1433 noch nicht freigeschaltet ist. Dies können wir mit der Eingabeaufforderung auf dem Webserver schnell prüfen, indem wir den Befehl netstat eingeben.

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

den kompletten Artikel im PDF-Format mit Beispieldatenbank

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar