Hinweise für die Verwendung von Microsoft SQL Server auf Windows im Zusammenspiel mit Docker/macOS/Linux (Connect 2024)

Damit eine unter Windows betriebene Instanz von Microsoft SQL-Server von Linux oder macOS erreichbar ist, müssen einige Standardeinstellungen angepasst werden. Dieses Kapitel beschreibt die grundsätzliche Vorgehensweise und ist als Anhaltspunkt für die betreffenden Administratoren gedacht. In Abhängigkeit vom tatsächlichen Umfeld können die benötigten Einstellungen jedoch von dem hier vorgeschlagenen Setup abweichen.

Anlegen der Datenbanken

In diesem Szenario empfiehlt es sich, die benötigten Datenbanken bereits vorab anzulegen, um den Zugriff auf einzelne Datenbanken zu begrenzen. Gehen Sie hierbei wie folgt vor:

  1. Starten Sie das SQL Server Management Studio über das Startmenü des Windows Servers und verbinden Sie dieses mit der Datenbank

  2. Erweitern Sie im Object Explorer (auf der linken Seite des Fensters) den Knoten für die mit dem Connect Server zu verbindende SQL Server Instanz

  3. Klicken Sie mit der rechten Maustaste auf den Knoten “Databases” und wählen Sie im Kontextmenü die Option “New Database…” aus

  4. Legen Sie den Namen der Datenbank fest und passen Sie bei Bedarf die weiteren Einstellungen an

  5. Klicken Sie auf die Schaltfläche “OK”, um die Datenbank anzulegen

Konfiguration des Zugriffs über TCP/IP

Der Zugriff auf eine unter Windows laufende Instanz von Microsoft SQL Server aus einem Linux oder macOS basiertem System heraus erfolgt am besten über TCP/IP. Nach der Installation des Microsoft SQL Servers muss dieses Protokoll jedoch erst aktiviert werden. Gehen Sie hierbei wie folgt vor:

  1. Sofern nicht bereits geschehen, starten Sie den SQL Server-Konfigurations-Manager über das Startmenü des Windows Servers

  2. Markieren Sie unter dem Punkt “SQL Server-Netzwerkkonfiguration” den entsprechenden Unterpunkt für die zu verwendende SQL Server-Instanz

  3. Doppelklicken Sie in der rechten Hälfte des Fensters auf den Punkt “TCP/IP”

  4. Setzen Sie im nun folgenden Fenster auf dem Reiter “Protokoll” die Option “Aktiviert” auf “Ja” und die Option “Alle überwachen” auf “Nein”

  5. Wechseln Sie nun auf den Reiter “IP-Adressen” und setzen Sie für diejenigen IP-Adressen unter denen der SQL Server per TCP/IP erreichbar sein soll die Option “Aktiviert” auf “Ja” und die Option “Port” auf “1433”.

  6. Klicken Sie auf die Schaltfläche “OK”, um die Änderungen zu übernehmen.

  7. Bestätigen Sie die nachfolgende Warnung durch einen Klick auf die Schaltfläche “OK”.

  8. Schließen Sie den SQL Server-Konfigurations-Manager.

Konfiguration der Firewall

Im nächsten Schritt müssen Sie sicherstellen, dass der Windows Server mit der SQL Server-Instanz Anfragen des Connect Servers auf dem TCP/IP Port 1433 entgegennehmen kann. Die Vorgehendweise kann sich hier in Abhängigkeit von den verwendeten Firewalls stark unterscheiden. Im Folgenden ist exemplarisch die Vorgehensweise zur Konfiguration der Windows-Firewall beschrieben:

  1. Starten Sie die Windows Defender Firewall mit erweiterter Sicherheit über das Startmenü des Windows Servers

  2. Markieren Sie im Baum auf der linken Seite des Fensters den Knoten “Eigehende Regeln”

  3. Klicken Sie bei den Aktionen auf der rechten Seite des Fensters auf “Neue Regel…”

  4. Wählen Sie nun die Option “Port” und klicken Sie anschließend auf die Schaltfläche “Weiter”

  5. Geben Sie den Port 1433 ein und klicken Sie erneut auf die Schaltfläche “Weiter”

  6. Bestätigen Sie die Standardeinstellung im nun folgenden Fenster, indem Sie nochmals auf die Schaltfläche “Weiter” klicken

  7. Wählen Sie nun die Netzwerkprofile aus, für welche der SQL Server erreichbar sein soll. Klicken Sie anschließend auf die Schaltfläche “Weiter”.

  8. Geben Sie nun einen aussagekräftigen Namen sowie eine kurze Beschreibung für die Firewall-Regel an und klicken Sie auf die Schaltfläche “Fertig stellen”

Authentifizierung

Da die Authentifizierung beim Microsoft SQL Server nicht über Windows-Authentifizierung erfolgen kann, muss nun der Authentifizierungsmodus auf “Windows und SQL Server” gesetzt werden. Sollte bereit der Authentifizierungsmodus “SQL Server” verwendet werden, so ist keine Konfigurationsänderung erforderlich.

  1. Starten Sie das SQL Server Management Studio über das Startmenü des Windows Servers und verbinden Sie dieses mit der Datenbank

  2. Klicken Sie im Object Explorer (auf der linken Seite des Fensters) mit der rechten Maustaste auf den Knoten für die mit dem Connect Server zu verbindende SQL Server Instanz und wählen sie im Kontextmenü den Punkt “Properties” aus

  3. Wählen Sie auf der linken Seite des nun angezeigten Dialogs den Punkt “Security” aus

  4. Aktivieren Sie die Option “SQL Server and Windows Authentication mode“

  5. Klicken Sie auf die Schaltfläche “OK” um die Änderung zu übernehmen

  6. Bestätigen Sie die nachfolgende Warnung ebenfalls durch einen Klick auf die Schaltfläche “OK”

Neustart der SQL Server-Instanz

Damit die bisher vorgenommenen Änderungen wirksam werden, muss die Instanz des SQL Servers neu gestartet werden. Stellen Sie zunächst sicher, dass die SQL-Server Instanz aktuell nicht benötigt wird. Gehen Sie zum Neustart hierbei wie folgt vor:

  1. Sofern nicht bereits geschehen, starten Sie das SQL Server Management Studio über das Startmenü des Windows Servers und verbinden Sie dieses mit der Datenbank

  2. Klicken Sie im Object Explorer (auf der linken Seite des Fensters) mit der rechten Maustaste auf den Knoten für die mit dem Connect Server zu verbindende SQL Server Instanz und wählen sie im Kontextmenü den Punkt “Restart” aus

  3. Unter Umständen erschein nun ein UAC-Dialog, da für diese Aktion Administratorrechte erforderlich sind. Bestätigen Sie diesen durch einen Klick auf die Schaltfläche “Ja”

  4. Bestätigen Sie die Rückfrage des SQL Server Management Studios durch einen Klick auf die Schaltfläche “Yes”

Die SQL Server Instanz wird nun gestoppt und anschließend neu gestartet. In Abhängigkeit von der Größe der verwalteten Datenbanken kann dieser Vorgang einen Zeitraum von einigen Sekunden bis zu einigen Minuten in Anspruch nehmen. Die Aktion ist abgeschlossen, sobald die angezeigten Fortschrittdialoge ausgeblendet wurden.

Erstellen eines Datenbank-Benutzers

Im letzten Schritt muss noch ein Datenbank-Benutzer angelegt werden, mit dessen Hilfe sich der Connect Server bim SQL Server authentifiziert. Gehen Sie hierbei wie folgt vor:

  1. Sofern nicht bereits geschehen, starten Sie das SQL Server Management Studio über das Startmenü des Windows Servers und verbinden Sie dieses mit der Datenbank

  2. Erweitern Sie im Object Explorer (auf der linken Seite des Fensters) den Knoten für die mit dem Connect Server zu verbindende SQL Server Instanz und erweitern Sie dessen Unterknoten “Security”

  3. Klicken Sie mit der rechten Maustaste auf den Knoten “Logins” und wählen Sie im Kontextmenü die Option “New Login…” aus

  4. Geben Sie im nun folgenden Dialog den gewünschten Benutzernamen ein, aktivieren Sie die Option “SQL Server authentication”, geben Sie das gewünschte Passwort ein und deaktivieren Sie die Optionen “Enforce password expiration” und “User must change Password at next login”

  5. Wechseln Sie nun in den Bereich “User Mapping”

  6. Markieren Sie im Bereich “Users mapped to this login” nacheinander die von Connect Server verwendeten Datenbanken und markieren Sie im Bereich “Database role membership for: …” jeweils die Option “db_owner”.

  7. Klicken Sie die Schaltfläche “OK”, um den Benutzer anzulegen.

Testen der Verbindung

Die Erreichbarkeit des SQL Servers über TCP/IP lässt sich einfach von der shell auf prüfen. Beim Folgenden Kommando muss [IP] durch die IP-Adresse des SQL Servers ersetzt werden.

Für weitergehende Test muss ein SQL Server client installiert werden. Die Vorgehensweise ist vom jeweiligen Betriebssystem abhängig. Der folgende Link enthält die entsprechenden Anleitungen:

https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools?view=sql-server-ver15

Nach der Installation der Client Tools sollte folgendes Kommando eine Verbindung zu Datenbank aufbauen (die Werte in eckigen Klammern sind entsprechend zu ersetzen):


Verbindung mit Standardinstanz:

Verbindung mit benannter Instanz:

Connection Strings für die Konfiguration des Connect Servers

Die Connection Strings für den Connect Server haben folgendes Format (die Werte in eckigen Klammern sind entsprechend zu ersetzen):

Verbindung mit Standardinstanz:

Verbindung mit benannter Instanz: