Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server op Linux
Dit artikel geeft algemene richtlijnen over hoe je een Linux-host die SQL Server draait kunt koppelen aan een Active Directory-domein. Er zijn twee methoden: een ingebouwd SSSD-pakket gebruiken of active directory-providers van derden gebruiken. Voorbeelden van producten voor derde partij domeinjoins zijn PowerBroker Identity Services (PBIS),One Identity Safeguard Authentication Services (VAS) en Centrify.
Deze handleiding bevat stappen voor het controleren van uw Active Directory-configuratie. Het is echter niet bedoeld om instructies te geven voor het koppelen van een computer aan een domein wanneer u hulpprogramma's van derden gebruikt.
Note
Zie voor meer informatie over het configureren van Active Directory met nieuwere versies van Ubuntu, RHEL of SLES Zelfstudie: Adutil gebruiken om Active Directory-verificatie te configureren met SQL Server op Linux.
Prerequisites
Voordat je Active Directory-authenticatie configureert, moet je een computer instellen die Windows Server draait als een Active Directory-domeincontroller op je netwerk. Sluit vervolgens de Linux-host aan die SQL Server draait op een Active Directory-domein.
De voorbeeldstappen die in dit artikel worden beschreven, zijn alleen bedoeld voor richtlijnen en verwijzen naar besturingssystemen Ubuntu 16.04, Red Hat Enterprise Linux (RHEL) 7.x en SUSE Linux Enterprise Server (SLES) 12. De daadwerkelijke stappen kunnen iets verschillen afhankelijk van je omgeving en besturingssysteemversie. Zo gebruikt Ubuntu 18.04 Netplan, terwijl RHEL 8.x nmcli en andere tools gebruikt om netwerken te beheren en te configureren. Neem contact op met uw systeem- en domeinbeheerders voor uw omgeving voor specifieke hulpprogramma's, configuratie, aanpassing en eventuele vereiste probleemoplossing.
Note
Vanaf SQL Server 2025 (17.x) wordt SUSE Linux Enterprise Server (SLES) niet ondersteund.
Omgekeerde DNS (rDNS)
Wanneer u een computer met Windows Server instelt als een domeincontroller, hebt u mogelijk geen rDNS-zone standaard. Zorg ervoor dat er een toepasselijke rDNS-zone bestaat voor zowel de domeincontroller als het IP-adres van de Linux-computer waarop SQL Server wordt uitgevoerd.
Zorg er ook voor dat PTR-records bestaan die naar je domeincontrollers verwijzen.
De verbinding met een domeincontroller controleren
Controleer of u contact kunt opnemen met de domeincontroller door zowel de korte als de volledig gekwalificeerde namen van het domein te gebruiken, en door de hostnaam van de domeincontroller te gebruiken. Het IP-adres van de domeincontroller moet ook worden overgeschakeld naar de volledig gekwalificeerde domeinnaam (FQDN) van de domeincontroller:
ping contoso
ping contoso.com
ping dc1.contoso.com
nslookup <IP address of dc1.contoso.com>
Tip
In deze zelfstudie worden respectievelijk contoso.com en CONTOSO.COM gebruikt als voorbeelddomein- en realmnamen. Het maakt ook gebruik van DC1.CONTOSO.COM als voorbeeld volledig gekwalificeerde domeinnaam van de domeincontroller. U moet deze namen vervangen door uw eigen waarden.
Om ervoor te zorgen dat de juiste domeinnaamomzetting wordt gegarandeerd, is het van cruciaal belang om het /etc/resolv.conf bestand bij te werken als er discrepanties worden gevonden tijdens naamcontroles. De updateprocedure verschilt per distributie; daarom is het raadplegen van de officiële documentatie aan te raden voor nauwkeurige begeleiding. De volgende lijst bevat koppelingen voor sommige distributies en hun belangrijkste versies:
| Distribution | Naslagartikel |
|---|---|
| RHEL 8 | handmatig de /etc/resolv.conf- configureren |
| RHEL 9- | handmatig de /etc/resolv.conf- configureren |
| SLES 15 | instellingen voor NETCONFIG_DNS_STATIC_SEARCHLIST en NETCONFIG_DNS_STATIC_SERVERS |
| Ubuntu | Naamomzettingsectie |
Het doel is om /etc/resolv.conf correct te configureren voor uw distributie om domeinnaamomzetting te vergemakkelijken. Als uw domein bijvoorbeeld is contoso.com en het IP-adres van Active Directory 10.0.0.4 is, moet de /etc/resolv.conf dienovereenkomstig worden ingesteld om ervoor te zorgen dat de naamomzetting van de host is geslaagd.
cat /etc/resolv.conf
Hier is het resultatenoverzicht.
# Generated by NetworkManager
search contoso.com com
nameserver 10.0.0.4
RHEL 7.x
Bewerk het
/etc/sysconfig/network-scripts/ifcfg-eth0bestand, zodat uw Active Directory-domein zich in de lijst met domeinzoekopdrachten bevindt. U kunt ook een ander configuratiebestand van de interface bewerken, indien van toepassing:sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0De uitvoer ziet er ongeveer als volgt uit:
PEERDNS=no DNS1=<Domain controller IP address> DOMAIN="contoso.com com"Nadat u dit bestand hebt bewerkt, start u de netwerkservice opnieuw op:
sudo systemctl restart networkControleer nu of uw
/etc/resolv.confbestand een regel bevat zoals in het volgende voorbeeld:sudo vi /etc/resolv.confDe uitvoer ziet er ongeveer als volgt uit:
search contoso.com com nameserver <Domain controller IP address>Als u de domeincontroller nog steeds niet kunt pingen, zoekt u de volledig gekwalificeerde domeinnaam en het IP-adres van de domeincontroller. Een voorbeeld van een domeinnaam is
DC1.CONTOSO.COM. Voeg de volgende vermelding toe aan/etc/hosts:sudo vi /etc/hostsDe uitvoer ziet er ongeveer als volgt uit:
<IP address> DC1.CONTOSO.COM CONTOSO.COM CONTOSO
Deelnemen aan het Active Directory-domein
Nadat je de basisconfiguratie en connectiviteit met de domeincontroller hebt geverifieerd, zijn er twee opties om een Linux-host die SQL Server draait aan het Active Directory-domein te koppelen:
- optie 1: een SSSD-pakket gebruiken
- Optie 2: Gebruik externe Active Directory-providerhulpprogramma's
Optie 1: SSSD-pakket gebruiken om lid te worden van Active Directory-domein
Deze methode verbindt de Linux-host die SQL Server draait aan een Active Directory-domein met behulp van realmd- en sssd-pakketten.
Dit is de voorkeursmethode voor het toevoegen van een Linux-host aan een Active Directory-domeincontroller.
Raadpleeg de officiële documentatie van de distributiepartners voor de meest recente instructies.
Gebruik de volgende stappen om een Linux-host die SQL Server draait aan te sluiten bij een Active Directory-domein:
Gebruik Realmd om je hostmachine aan te sluiten bij je Active Directory-domein. Je moet eerst zowel de Realmd- als Kerberos-clientpakketten installeren op de SQL Server Linux-host met behulp van de pakketmanager van je Linux-distributie:
Als tijdens de installatie van het Kerberos-clientpakket om een realmnaam wordt gevraagd, voert u uw domeinnaam in hoofdletters in.
Nadat u hebt bevestigd dat uw DNS juist is geconfigureerd, voegt u het domein toe door de volgende opdracht uit te voeren. U moet verifiëren met een Active Directory-account met voldoende bevoegdheden in Active Directory om een nieuwe computer aan het domein toe te voegen. Met deze opdracht maakt u een nieuw computeraccount in Active Directory, maakt u het
/etc/krb5.keytabhostsleuteltabbestand, configureert u het domein in/etc/sssd/sssd.confen werkt u/etc/krb5.confbij.Vanwege een probleem met realmd, stelt u eerst de hostnaam van de machine in op de FQDN in plaats van op de computernaam. Anders worden realmd mogelijk niet alle vereiste SPN's voor de computer gemaakt en worden DNS-vermeldingen niet automatisch bijgewerkt, zelfs niet als uw domeincontroller dynamische DNS-updates ondersteunt.
sudo hostname <old hostname>.contoso.comNadat u deze opdracht hebt uitgevoerd, moet het
/etc/hostnamebestand<old hostname>.contoso.combevatten.sudo realm join contoso.com -U 'user@CONTOSO.COM' -vJe zou het bericht
Successfully enrolled machine in realmmoeten zien.De volgende tabel bevat enkele foutberichten die u kunt ontvangen en suggesties voor het oplossen ervan:
Foutmelding Aanbeveling Necessary packages are not installedInstalleer deze pakketten met behulp van pakketbeheer van uw Linux-distributie voordat u de realm join-opdracht opnieuw uitvoert. Insufficient permissions to join the domainNeem contact op met een domeinbeheerder die over voldoende machtigingen beschikt om Linux-machines aan uw domein toe te voegen. KDC reply did not match expectationsMogelijk hebt u niet de juiste realmnaam voor de gebruiker opgegeven. Realmnamen maken onderscheid tussen hoofdletters en kleine letters, zijn meestal in hoofdletters en kunnen worden herkend met het commando realm discover contoso.com.SQL Server maakt gebruik van SSSD en NSS voor het toewijzen van gebruikersaccounts en -groepen aan beveiligings-id's (SID's). SSSD moet worden geconfigureerd en uitgevoerd voor SQL Server om Active Directory-aanmeldingen te kunnen maken. realmd doet dit meestal automatisch als onderdeel van het toevoegen van het domein, maar in sommige gevallen moet u dit afzonderlijk doen.
Zie voor meer informatie hoe u SSSD handmatig configurerenen NSS configureren voor gebruik met SSSD-.
Controleer of u nu informatie over een gebruiker uit het domein kunt verzamelen en of u een Kerberos-ticket als die gebruiker kunt verkrijgen. In het volgende voorbeeld wordt id, kinit-en klist- opdrachten hiervoor gebruikt.
Gebruik
idom te bevestigen dat SSSD de lidmaatschappen van de domeingebruiker en groep kan oplossen:id user@contoso.comDe output zou de gebruikers-ID, groeps-ID en groepslidmaatschap van de domeingebruiker moeten tonen:
uid=1348601103(user@contoso.com) gid=1348600513(domain group@contoso.com) groups=1348600513(domain group@contoso.com)Gebruik
kinitom een Kerberos-ticket aan te vragen voor de domeingebruiker:kinit user@CONTOSO.COMHet commando moet vragen om het wachtwoord van de domeingebruiker:
Password for user@CONTOSO.COM:Gebruik
klistom het Kerberos-ticket te verifiëren:klistDe uitvoer moet de domeingebruiker identificeren als de standaardprincipal:
Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: user@CONTOSO.COMAls
id user@contoso.comretourneert,No such user, moet u ervoor zorgen dat de SSSD-service is gestart door de opdrachtsudo systemctl status sssduit te voeren. Als de dienst actief is en u de fout nog steeds ziet, probeer dan gedetailleerde logboekregistratie voor SSSD in te schakelen. Zie de Red Hat-documentatie voor Probleemoplossing SSSDvoor meer informatie.Als
kinit user@CONTOSO.COMterugkeert,KDC reply didn't match expectations while getting initial credentials, zorg er dan voor dat u het domein in hoofdletters hebt opgegeven.
Voor meer informatie, zie de Red Hat-documentatie voor het ontdekken en joinen van een AD-domein met SSSD.
Optie 2: Gebruik externe Active Directory-providerhulpprogramma's
U kunt hulpprogramma's van derden gebruiken, zoals PBIS-, VASof Centrify-. Dit artikel bevat geen informatie over de stappen voor elk afzonderlijk hulpprogramma. Je moet eerst een van deze hulpprogramma's gebruiken om de Linux-host die SQL Server draait aan het domein te koppelen voordat je verder gaat.
SQL Server gebruikt geen code of bibliotheken van externe integrators voor Active Directory-gerelateerde zoekopdrachten. SQL Server voert altijd query's uit op Active Directory met behulp van OpenLDAP-bibliotheekaanroepen rechtstreeks in deze installatie. De integrators van derden worden alleen gebruikt om de Linux-host te verbinden met een Active Directory-domein, en SQL Server heeft geen directe communicatie met deze hulpprogramma's.
Important
Zie de aanbevelingen voor het gebruik van de optie mssql-conf network.disablesssd configuratie in het gedeelte Aanvullende configuratieopties van het artikel Active Directory-verificatie gebruiken met SQL Server op Linux.
Controleer of uw /etc/krb5.conf juist is geconfigureerd. Voor de meeste externe Active Directory-providers wordt deze configuratie automatisch uitgevoerd. Controleer echter /etc/krb5.conf op de volgende waarden om toekomstige problemen te voorkomen:
sudo vi /etc/krb5.conf
De uitvoer ziet er ongeveer als volgt uit:
[libdefaults]
default_realm = CONTOSO.COM
[realms]
CONTOSO.COM = {
}
[domain_realm]
contoso.com = CONTOSO.COM
.contoso.com = CONTOSO.COM
Controleer of de omgekeerde DNS juist is geconfigureerd
Met de volgende opdracht moet de FQDN (Fully Qualified Domain Name) worden geretourneerd van de host waarop SQL Server wordt uitgevoerd. Een voorbeeld is SqlHost.contoso.com.
host <IP address of SQL Server host>
De uitvoer van deze opdracht moet vergelijkbaar zijn met <reversed IP address>.in-addr.arpa domain name pointer SqlHost.contoso.com. Als dit commando de FQDN van je host niet teruggeeft, of als de FQDN niet klopt, voeg dan een reverse DNS-entry toe voor de Linux-host die SQL Server draait aan je DNS-server.
Volgende stap
In dit artikel heb je een Linux-host geconfigureerd die SQL Server draait met Active Directory-authenticatie. Volg deze instructies om het configureren van SQL Server in Linux te voltooien om Active Directory-accounts te ondersteunen.