Letztes Jahr wurde die Ansible-Rolle microsoft.sql.server in Red Hat Enterprise Linux (RHEL) eingeführt. Mit der Veröffentlichung von RHEL 8.8 und 9.2 erhält diese Rolle ein neues Update mit verschiedenen neuen Funktionen:
- Konfigurieren der Authentifizierung von SQL Server mit Active Directory Server
- Erweiterte Verwaltungsfunktionen für Always On-Verfügbarkeitsgruppen, einschließlich Unterstützung für das Konfigurieren asynchroner Verfügbarkeitsreplikate und von Read-Scale Always auf Clustern
- Konfigurieren und Verwalten von SQL Server 2022 auf RHEL 8 und RHEL 9
Dieser Artikel behandelt die Integration mit Active Directory (AD) und führt Sie durch den gesamten Prozess:
- Stellen Sie sicher, dass Sie die Anforderungen zum Konfigurieren der AD-Authentifizierung für SQL Server erfüllen.
- Bereiten Sie eine Ansible Inventory-Datei vor.
- Untersuchen Sie die festzulegenden Variablen und bereiten Sie eine Ansible Playbook-Datei vor, welche die Rolle zum automatischen Konfigurieren der Authentifizierung mit Active Directory verwendet.
- Führen Sie die Rolle aus.
- Beenden Sie die Konfiguration.
- Überprüfen Sie, ob die Authentifizierung wie erwartet funktioniert.
Voraussetzungen
Stellen Sie vor dem Start fest, dass Sie die Voraussetzungen für die Rolle erfüllen.
- Sie müssen einen Active Directory-Server ausführen und über Ihren RHEL-Rechner auf diesen zugreifen können. Eine Übersicht der Voraussetzungen finden Sie in der Microsoft-Dokumentation unter Join SQL Server on a Linux host to an Active Directory domain. Bei Problemen mit den Voraussetzungen finden Sie Informationen unter Troubleshoot Active Directory authentication for SQL Server on Linux and containers.
- Stellen Sie sicher, dass die DNS-Suche funktioniert. Sie sollten den Active Directory-Server mit seiner IP-Adresse und seinen kurzen und vollständigen DNS-Namen von Ihrem RHEL-Rechner aus erfolgreich per Ping erreichen können.
- Stellen Sie sicher, dass die Reverse-DNS-Suche funktioniert. Beim Ausführen des Befehls
nslookup
für die IP-Adresse des Active Directory-Servers muss der Name den richtigen DNS-Namen ergeben und der DNS-Name muss wiederum die richtige IP-Adresse ergeben. - Stellen Sie sicher, dass Sie Zugriff und Anmeldedaten für einen Active Directory-Nutzer mit der Berechtigung zum Erstellen von Nutzerkonten und Service Principal Names (SPNs) in der Domain haben.
Vorbereiten eines Ansible Inventory
Das Inventory darf nur RHEL-Server enthalten, die Sie für die Active Directory-Authentifizierung konfigurieren möchten. In diesem Beispiel wird die Inventory-Datei inventory.yml
verwendet, die einen einzelnen RHEL-Knoten enthält rhel-sql-server.example.com
:
$ cat inventory.yml
---
all:
hosts:
rhel-sql-server.example.com
Anwenden der Rolle
Als Nächstes benötigen Sie ein Playbook, um die Authentifizierung mit Active Directory zu konfigurieren. Dies ist am einfachsten, wenn Sie sich zunächst ein Beispiel für ein Playbook ansehen, Variablen und Parameter nach Bedarf anpassen und es als Basis für Ihr eigenes Playbook verwenden.
Beachten Sie, dass für die Rolle einige Passwörter mit Variablen festgelegt werden müssen. Die Beispiele in diesem Artikel stellen diese Variablen in Klartext bereit. In der Produktion müssen Sie jedoch Ansible Vault verwenden, um Passwörter zu verschlüsseln.
Beispiel-Playbook
Hier ist ein Beispiel-Playbook, das als playbook.yml
gespeichert ist. Es konfiguriert die Authentifizierung mit Active Directory:
---
- name: Configure with AD server authentication
hosts: all
vars:
# General variables
mssql_accept_microsoft_odbc_driver_17_for_sql_server_eula: true
mssql_accept_microsoft_cli_utilities_for_sql_server_eula: true
mssql_accept_microsoft_sql_server_standard_eula: true
mssql_version: 2022
mssql_password: "p@55w0rD"
mssql_edition: Evaluation
mssql_manage_firewall: true
# AD Integration required variables
mssql_ad_configure: true
mssql_ad_sql_user_name: sqluser
mssql_ad_sql_password: "p@55w0rD1"
ad_integration_realm: domain.com
ad_integration_user: Administrator
ad_integration_password: Secret123
# AD Integration optional variables
mssql_ad_sql_user_dn: "CN=sqluser,CN=Users,DC=DOMAIN,DC=COM"
mssql_ad_netbios_name: domain
Die Variablen im Beispiel-Playbook sind in 3 Abschnitte unterteilt: allgemeine, erforderliche und optionale Variablen.
Allgemeine Variablen
Variablen, welche die Endnutzer-Lizenzvereinbarung (EULA) akzeptieren, müssen auf true
festgelegt werden, um zu bestätigen, dass Sie den Bedingungen des Pakets mssql-Server
zustimmen. Dazu zählen:
mssql_accept_microsoft_odbc_driver_17_for_sql_server_eula
mssql_accept_microsoft_cli_utilities_for_sql_server_eula
mssql_accept_microsoft_sql_server_standard_eula
Weitere Variablen:
mssql_version
definiert die Version (2017, 2019 oder 2022) des SQL Servers, den Sie verwalten möchten.mssql_password
legt das Passwort für densa
Nutzer festmssql_edition
definiert die Edition, die für SQL Server konfiguriert werden sollmssql_manage_firewall
aktiviert die Firewall und öffnet die erforderlichen Ports. Dies ist eine optionale Variable. Verwenden Sie diese Option nur, wenn die Rolle die Firewall für Sie verwalten soll.
Erforderliche Variablen für die AD-Integration
Diese Variablen sind erforderlich:
mssql_ad_configure
: Gibt an, ob die Active Directory-Authentifizierung konfiguriert werden soll.mssql_ad_sql_user_name
: Name der Nutzerin oder des Nutzers, der auf dem Active Directory-Server erstellt werden soll, um die Authentifizierung für SQL Server zu aktivieren. Die Rolle verwendet adutil, was erfordert, dass Nutzer mit der Berechtigung für den Zugriff als privilegierte Nutzer erstellt werden.mssql_ad_sql_password
: Passwort für die Nutzer, die erstellt werden.ad_integration_realm
: Name des Active Directory-Realm.ad_integration_user
: Name der berechtigten Nutzer in Active Directory. Diese Nutzer müssen bereits in der Domain vorhanden sein.ad_integration_password
: Passwort für die Nutzer.
Optionale Variablen für die AD-Integration
Diese Variablen sind optional:
mssql_ad_sql_user_dn
: Sie müssen diese Variable festlegen, wenn Ihr AD-Server Nutzerkonten in einer benutzerdefinierten Organisationseinheit (OU, Organizational Unit) und nicht in der Standard-Organisationseinheit für Nutzer speichert. Standardmäßig erstellt die Rolle den definierten Namen basierend auf den Werten, die für die Variablenmssql_ad_sql_user_name
undad_integration_realm
bereitgestellt werden, und verwendet dieNutzer
OU (beispielsweiseCN=sqluser,CN=Users, DC=DOMAIN,DC=COM
). Sie können diesen Namen überschreiben, indem Sie einen definierten Namen angeben.mssql_ad_net bios_name
: Sie müssen diese Variable festlegen, wenn der NetBIOS-Domain-Name Ihres AD-Servers nicht der ersten Subdomain des Domain-Namens entspricht, den Sie mit der Variablenad_integration_realm
bereitstellen (Sie haben beispielsweisead_integration_realm
zudomain.contoso.com
festgelgt, aber Ihr NetBIOS Domain Name ist nichtdomain
.) Dieser Wert wird zum Erstellen der{{ mssql_ad_netBIOS_name }}\{ad_integration_user }}
-Anmeldung in SQL Server verwendet.
Ausführen der Ansible-Rolle
Wenn die Voraussetzungen erfüllt sind und das Ansible Inventory und das Playbook vorliegen, können Sie das Playbook ausführen.
$ ansible-playbook -i inventory.yml playbook.yml
Hinzufügen von Domain-Nutzern zu SQL Server
Bevor ein Nutzer sich anmelden kann, müssen Sie sie zu SQL Server hinzufügen. Führen Sie dazu den folgenden T-SQL-Befehl für die einzelnen AD Domain-Nutzer aus:
CREATE LOGIN \[<domain>**<username>*\] FROM WINDOWS;
Aktivieren zusätzlicher Verschlüsselungsarten
Nachdem Sie die Rolle zum Konfigurieren der Active Directory-Authentifizierung ausgeführt haben, müssen Sie dem mit der Variablen mssql_ad_sql_user_name
definierten Nutzer in Active Directory die Kerberos-Verschlüsselungstypen AES128 und AES256 hinzufügen. Sie können dies mit der Active Directory-Webbenutzeroberfläche oder mit PowerShell durchführen.
Web-Benutzeroberfläche (UI)
Öffnen Sie die Web-UI Ihres AD Servers, und melden Sie sich an.
- Navigieren Sie zu Tools > Active Directory Users and Computers > [domain] > Users > [sqluser] > Account
- Wählen Sie in der Liste Account options den Eintrag This account supports Kerberos AES 128 bit Encryption und This account supports Kerberos AES 256 bit Encryption aus.
- Klicken Sie auf Apply.
PowerShell
Führen Sie in der PowerShell den Befehl Set-ADUser
aus und ersetzen Sie <sqluser>
durch den Nutzernamen, den Sie als Variable mssql_ad_sql_user_name
festgelegt haben:
Set-ADUser -Identity <sqluser> -KerberosEncryptionType AES128,AES256
Verifizieren der Authentifizierung mit Active Directory
Nachdem Sie nun die Rolle zum Konfigurieren der AD Server-Authentifizierung ausgeführt und Ihrem Nutzer <sqluser>
die erforderlichen Verschlüsselungstypen hinzugefügt haben, können Sie sich mit einer der folgenden Methoden authentifizieren:
- Windows oder RHEL: Azure Data Studio (ADS)
- Windows: SQL Server Management Studio (SSMS)
- RHEL: Linux-Terminal
Azure Data Studio (ADS)
Wenn Sie ADS noch nicht installiert haben, befolgen Sie die Microsoft-Dokumentation, um Azure Data Studio herunterzuladen und zu installieren.
Starten Sie ADS nach der Installation.
- Klicken Sie auf Create a connection.
- Wählen Sie in der Liste Authentication type den Eintrag Windows Authentication aus.
- Füllen Sie die anderen Felder aus, und klicken Sie auf Connect
Sie können jetzt SQL Server verwenden.
![Azure Data Studio Azure Data Studio user interface](/rhdc/managed-files/styles/wysiwyg_full_width/private/ads-ui.png?itok=FNG-ueDh)
SQL Server Management Studio (SSMS)
Melden Sie sich zunächst unter Windows als der Nutzer an, den Sie für die Anmeldung bei SQL Server verwenden möchten, und starten Sie dann SSMS.
- Wählen Sie im Bereich Connect to Server den Eintrag Database Engine aus der Liste Server type aus.
- Geben Sie im Feld Server name den vollständig qualifizierten Domain Name (FQDN) der RHEL-Instanz ein, für die Sie die Rolle ausgeführt haben
- Wählen Sie in der Liste Authentication die Option Windows Authenticationaus, und füllen Sie diese Felder aus:
- Server type: Database Engine
- Server name: Geben Sie Ihren Servernamen ein
- Authentication: Windows Authentication
- Klicken Sie auf Connect
![SQL Server Management Studio SQL Server Management Studio user interface](/rhdc/managed-files/styles/wysiwyg_full_width/private/ssms-ui.png?itok=TyLQ5Y7S)
Linux-Terminal
Zum Verifizieren der Authentifizierung über ein Linux-Terminal melden Sie sich per SSH als der von der Rolle erstellte Nutzer am Server an.
$ ssh -l <sqluser>@<domain.com> <client.domain.com>
Rufen Sie ein Kerberos-Ticket für den Nutzer von Active Directory ab, den Sie authentifizieren möchten:
$ kinit <AD_user_name>@<DOMAIN.COM>
Verwenden Sie sqlcmd
, um sich bei SQL Server anzumelden und beispielsweise eine Abfrage zum Abrufen des aktuellen Nutzers auszuführen:
/opt/mssql-tools/bin/sqlcmd -S. -Q 'SELECT SYSTEM_USER'
Fazit
Mit der Rolle microsoft.sql.server können Sie die Integration mit Active Directory für die Nutzerauthentifizierung automatisieren. Die Rolle verwendet die Rolle redhat.rhel_system_roles.ad_integration, um eine Verbindung zu Active Directory herzustellen. Die Rolle redhat.rhel_system_roles.firewall dient der Konfiguration der Firewall. Dies erfolgt auf konsistente Weise. Red Hat bietet weitere Systemrollen zum Verwalten verschiedener Services und Tools auf RHEL. Wenn Sie Ihre Workflows automatisieren möchten, sehen Sie sich die Liste der verfügbaren RHEL-Systemrollen an und lesen Sie die Dokumentation oder die entsprechenden Blogbeiträge zu diesem Thema. Das Angebot ist groß!
Wenn Sie sich mehr über microsoft.sql.server Rolle erfahren wollen, empfehlen wir Ihnen einen Blick in die offizielle Dokumentation.
Über den Autor
Sergei Petrosian is a technical writer at Red Hat working on Satellite and Foreman documentation.
Nach Thema durchsuchen
Automatisierung
Das Neueste zum Thema IT-Automatisierung für Technologien, Teams und Umgebungen
Künstliche Intelligenz
Erfahren Sie das Neueste von den Plattformen, die es Kunden ermöglichen, KI-Workloads beliebig auszuführen
Open Hybrid Cloud
Erfahren Sie, wie wir eine flexiblere Zukunft mit Hybrid Clouds schaffen.
Sicherheit
Erfahren Sie, wie wir Risiken in verschiedenen Umgebungen und Technologien reduzieren
Edge Computing
Erfahren Sie das Neueste von den Plattformen, die die Operations am Edge vereinfachen
Infrastruktur
Erfahren Sie das Neueste von der weltweit führenden Linux-Plattform für Unternehmen
Anwendungen
Entdecken Sie unsere Lösungen für komplexe Herausforderungen bei Anwendungen
Original Shows
Interessantes von den Experten, die die Technologien in Unternehmen mitgestalten
Produkte
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Cloud-Services
- Alle Produkte anzeigen
Tools
- Training & Zertifizierung
- Eigenes Konto
- Kundensupport
- Für Entwickler
- Partner finden
- Red Hat Ecosystem Catalog
- Mehrwert von Red Hat berechnen
- Dokumentation
Testen, kaufen und verkaufen
Kommunizieren
Über Red Hat
Als weltweit größter Anbieter von Open-Source-Software-Lösungen für Unternehmen stellen wir Linux-, Cloud-, Container- und Kubernetes-Technologien bereit. Wir bieten robuste Lösungen, die es Unternehmen erleichtern, plattform- und umgebungsübergreifend zu arbeiten – vom Rechenzentrum bis zum Netzwerkrand.
Wählen Sie eine Sprache
Red Hat legal and privacy links
- Über Red Hat
- Jobs bei Red Hat
- Veranstaltungen
- Standorte
- Red Hat kontaktieren
- Red Hat Blog
- Diversität, Gleichberechtigung und Inklusion
- Cool Stuff Store
- Red Hat Summit