SQL Server op een Linux-host toevoegen aan een Active Directory-domein

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

  1. Bewerk het /etc/sysconfig/network-scripts/ifcfg-eth0 bestand, 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-eth0
    

    De uitvoer ziet er ongeveer als volgt uit:

    PEERDNS=no
    DNS1=<Domain controller IP address>
    DOMAIN="contoso.com com"
    
  2. Nadat u dit bestand hebt bewerkt, start u de netwerkservice opnieuw op:

    sudo systemctl restart network
    
  3. Controleer nu of uw /etc/resolv.conf bestand een regel bevat zoals in het volgende voorbeeld:

    sudo vi /etc/resolv.conf
    

    De uitvoer ziet er ongeveer als volgt uit:

    search contoso.com com
    nameserver <Domain controller IP address>
    
  4. 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/hosts
    

    De 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: 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.

Distribution Naslagartikel
RHEL 8 een AD-domein detecteren en toevoegen met behulp van SSSD-
RHEL 9- een AD-domein detecteren en toevoegen met behulp van SSSD-
SLES lid worden van Active Directory met behulp van het Windows-domeinlidmaatschap
Ubuntu Hoe SSSD instellen met Active Directory

Gebruik de volgende stappen om een Linux-host die SQL Server draait aan te sluiten bij een Active Directory-domein:

  1. 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:

    RHEL:

    sudo yum install realmd krb5-workstation
    

  1. Als tijdens de installatie van het Kerberos-clientpakket om een realmnaam wordt gevraagd, voert u uw domeinnaam in hoofdletters in.

  2. 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.keytab hostsleuteltabbestand, 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.com
    

    Nadat u deze opdracht hebt uitgevoerd, moet het /etc/hostname bestand <old hostname>.contoso.combevatten.

    sudo realm join contoso.com -U 'user@CONTOSO.COM' -v
    

    Je 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 installed Installeer deze pakketten met behulp van pakketbeheer van uw Linux-distributie voordat u de realm join-opdracht opnieuw uitvoert.
    Insufficient permissions to join the domain Neem contact op met een domeinbeheerder die over voldoende machtigingen beschikt om Linux-machines aan uw domein toe te voegen.
    KDC reply did not match expectations Mogelijk 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-.

  3. 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 id om te bevestigen dat SSSD de lidmaatschappen van de domeingebruiker en groep kan oplossen:

    id user@contoso.com
    

    De 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 kinit om een Kerberos-ticket aan te vragen voor de domeingebruiker:

    kinit user@CONTOSO.COM
    

    Het commando moet vragen om het wachtwoord van de domeingebruiker:

    Password for user@CONTOSO.COM:
    

    Gebruik klist om het Kerberos-ticket te verifiëren:

    klist
    

    De uitvoer moet de domeingebruiker identificeren als de standaardprincipal:

    Ticket cache: FILE:/tmp/krb5cc_1000
    Default principal: user@CONTOSO.COM
    

    Als id user@contoso.com retourneert, No such user, moet u ervoor zorgen dat de SSSD-service is gestart door de opdracht sudo 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.COM terugkeert, 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.