Dela via


Ansluta SQL Server på en Linux-värd till en Active Directory-domän

gäller för:SQL Server – Linux

Den här artikeln innehåller allmän vägledning om hur du ansluter en SQL Server Linux-värddator till en Active Directory-domän. Det finns två metoder: använd ett inbyggt SSSD-paket eller använd Active Directory-leverantörer från tredje part. Exempel på produkter för domänanslutning från tredje part är PowerBroker Identity Services (PBIS), One Identityoch Centrify.

Den här guiden innehåller steg för att kontrollera active directory-konfigurationen. Det är dock inte avsett att ge instruktioner om hur du ansluter en dator till en domän när du använder verktyg från tredje part.

Not

Information om hur du konfigurerar Active Directory med nyare versioner av Ubuntu, RHEL eller SLES finns i Tutorial: Use adutil to configure Active Directory authentication with SQL Server on Linux.

Förutsättningar

Innan du konfigurerar Active Directory-autentisering måste du konfigurera en Active Directory-domänkontrollant, Windows, i nätverket. Anslut sedan SQL Server på Linux-värden till en Active Directory-domän.

Exempelstegen som beskrivs i den här artikeln är endast för vägledning och refererar till operativsystemen Ubuntu 16.04, Red Hat Enterprise Linux (RHEL) 7.x och SUSE Linux Enterprise Server (SLES) 12. Faktiska steg kan variera något i din miljö beroende på hur din övergripande miljö är konfigurerad och operativsystemversionen. Ubuntu 18.04 använder till exempel netplan medan Red Hat Enterprise Linux (RHEL) 8.x använder nmcli bland andra verktyg för att hantera och konfigurera nätverk. Du bör kontakta system- och domänadministratörer för din miljö för specifika verktyg, konfiguration, anpassning och eventuell felsökning.

Omvänd DNS (rDNS)

När du konfigurerar en dator som kör Windows Server som domänkontrollant kanske du inte har en rDNS-zon som standard. Kontrollera att det finns en tillämplig rDNS-zon för både domänkontrollanten och IP-adressen för den Linux-dator som ska köra SQL Server.

Se också till att det finns en PTR-post som pekar på dina domänkontrollanter.

Kontrollera anslutningen till en domänkontrollant

Kontrollera att du kan kontakta domänkontrollanten med hjälp av både de korta och fullständigt kvalificerade namnen på domänen och med hjälp av domänkontrollantens värdnamn. Domänkontrollantens IP-adress bör också matchas mot domänkontrollantens fullständiga domännamn:

ping contoso
ping contoso.com
ping dc1.contoso.com
nslookup <IP address of dc1.contoso.com>

Tips

I den här handledningen används contoso.com och CONTOSO.COM som exempel på domännamn respektive riksnamn. Den använder också DC1.CONTOSO.COM som exempel på fullständigt kvalificerade domännamn för domänkontrollanten. Du måste ersätta dessa namn med dina egna värden.

För att säkerställa korrekt domännamnsmatchning är det viktigt att uppdatera /etc/resolv.conf-filen om det finns några avvikelser under namnkontrollerna. Uppdateringsproceduren varierar mellan olika distributioner. Därför rekommenderar vi att du konsulterar den officiella dokumentationen för att få korrekt vägledning. Följande lista innehåller länkar för vissa distributioner och deras nyckelversioner:

Fördelning Referensartikel
RHEL 8 Konfigurera /etc/resolve.conf manuellt
RHEL 9 Konfigurera /etc/resolve.conf manuellt
SLES 15 inställningar för NETCONFIG_DNS_STATIC_SEARCHLIST och NETCONFIG_DNS_STATIC_SERVERS
Ubuntu avsnittet om namnuppslagning

Målet är att konfigurera /etc/resolv.conf korrekt för din distribution för att underlätta domännamnsmatchning. Om din domän till exempel är contoso.com och Active Directory IP-adressen är 10.0.0.4, bör /etc/resolv.conf konfigureras i enlighet med detta för att säkerställa korrekt namnuppslagning från värddatorn.

cat /etc/resolv.conf

Här är resultatet.

# Generated by NetworkManager
search contoso.com com
nameserver 10.0.0.4

RHEL 7.x

  1. Redigera /etc/sysconfig/network-scripts/ifcfg-eth0-filen så att active directory-domänen finns i listan över domänsökningar. Eller redigera en annan gränssnittskonfigurationsfil efter behov:

    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
    

    Innehållet bör se ut ungefär som i följande exempel:

    PEERDNS=no
    DNS1=<Domain controller IP address>
    DOMAIN="contoso.com com"
    
  2. När du har redigerat den här filen startar du om nätverkstjänsten:

    sudo systemctl restart network
    
  3. Kontrollera nu att filen /etc/resolv.conf innehåller en rad som i följande exempel:

    sudo vi /etc/resolv.conf
    

    Innehållet bör se ut ungefär som i följande exempel:

    search contoso.com com
    nameserver <Domain controller IP address>
    
  4. Om du fortfarande inte kan pinga domänkontrollanten hittar du domänkontrollantens fullständigt kvalificerade domännamn och IP-adress. Ett exempel på domännamn är DC1.CONTOSO.COM. Lägg till följande post i /etc/hosts:

    sudo vi /etc/hosts
    

    Innehållet bör se ut ungefär som i följande exempel:

    <IP address> DC1.CONTOSO.COM CONTOSO.COM CONTOSO
    

Ansluta till Active Directory-domänen

När den grundläggande konfigurationen och anslutningen med domänkontrollanten har verifierats finns det två alternativ för att ansluta en SQL Server Linux-värddator till Active Directory-domänkontrollanten:

Alternativ 1: Använd SSSD-paketet för att ansluta till Active Directory-domän

Den här metoden kopplar SQL Server-värdservern till en Active Directory-domän genom att använda realmd och sssd-paket.

Det här är den bästa metoden för att ansluta en Linux-värd till en Active Directory-domänkontrollant.

De senaste instruktionerna finns i den officiella dokumentation som tillhandahålls av distributionspartnerna.

Fördelning Referensartikel
RHEL 8 Identifiera och ansluta till en AD-domän med SSSD-
RHEL 9 Identifiera och ansluta till en AD-domän med SSSD-
SLES Ansluta till Active Directory med hjälp av Windows-domänmedlemskap
Ubuntu Konfigurera SSSD med Active Directory

Använd följande steg för att ansluta en SQL Server-värd till en Active Directory-domän:

  1. Använd realmd för att ansluta värddatorn till din Active Directory-domän. Du måste först installera både realmd och Kerberos-klientpaketen på värddatorn för SQL Server genom att använda Linux-distributionens pakethanterare.

    RHEL:

    sudo yum install realmd krb5-workstation
    

  1. Om kerberos-klientpaketinstallationen frågar efter ett sfärnamn anger du domännamnet i versaler.

  2. När du har bekräftat att dns-koden är korrekt konfigurerad ansluter du till domänen genom att köra följande kommando. Du måste autentisera med ett Active Directory-konto som har tillräcklig behörighet i Active Directory för att ansluta en ny dator till domänen. Det här kommandot skapar ett nytt datorkonto i Active Directory, skapar filen /etc/krb5.keytab värdnyckelflik, konfigurerar domänen i /etc/sssd/sssd.confoch uppdaterar /etc/krb5.conf.

    På grund av ett problem med realmdska du först ställa in datorns värdnamn på FQDN istället för datornamnet. Annars kanske realmd inte skapar alla nödvändiga tjänstens huvudnamn (SPN) för datorn och DNS-poster uppdateras inte automatiskt, även om domänkontrollant stöder dynamiska DNS-uppdateringar.

    sudo hostname <old hostname>.contoso.com
    

    När du har kört det här kommandot ska /etc/hostname-filen innehålla <old hostname>.contoso.com.

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

    Du bör se meddelandet Successfully enrolled machine in realm.

    I följande tabell visas några felmeddelanden som du kan få och förslag på hur du löser dem:

    Felmeddelande Rekommendation
    Necessary packages are not installed Installera dessa paket med hjälp av Linux-distributionens pakethanterare innan du kör kommandot realm join igen.
    Insufficient permissions to join the domain Kontrollera med en domänadministratör att du har tillräcklig behörighet för att ansluta Linux-datorer till din domän.
    KDC reply did not match expectations Du kanske inte har angett rätt sfärnamn för användaren. Sfärnamn är skiftlägeskänsliga och skrivs vanligtvis med versaler och kan identifieras med kommandot realm discover contoso.com.

    SQL Server använder SSSD och NSS för att mappa användarkonton och grupper till säkerhetsidentifierare (SID). SSSD måste konfigureras och köras för ATT SQL Server ska kunna skapa Active Directory-inloggningar. realmd gör vanligtvis detta automatiskt som en del av anslutningen till domänen, men i vissa fall måste du göra detta separat.

    Mer information finns i hur du konfigurera SSSD manuelltoch konfigurera NSS för att arbeta med SSSD.

  3. Kontrollera att du nu kan samla in information om en användare från domänen och att du kan hämta en Kerberos-biljett som den användaren. I följande exempel används id, kinitoch klist kommandon för detta.

    id user@contoso.com
    
    uid=1348601103(user@contoso.com) gid=1348600513(domain group@contoso.com) groups=1348600513(domain group@contoso.com)
    
    kinit user@CONTOSO.COM
    
    Password for user@CONTOSO.COM:
    
    klist
    Ticket cache: FILE:/tmp/krb5cc_1000
    Default principal: user@CONTOSO.COM
    

    Om id user\@contoso.com returnerar No such userkontrollerar du att SSSD-tjänsten har startats genom att köra kommandot sudo systemctl status sssd. Om tjänsten körs och du fortfarande ser felet kan du prova att aktivera utförlig loggning för SSSD. Mer information finns i Red Hat-dokumentationen för Felsökning av SSSD-.

    Om kinit user\@CONTOSO.COM returnerar KDC reply didn't match expectations while getting initial credentials, kontrollera att du har angett området i versaler.

Mer information finns i Red Hat-dokumentationen för Identifiera och ansluta till identitetsdomäner.

Alternativ 2: Använd openLDAP-providerverktyg från tredje part

Du kan använda verktyg från tredje part, till exempel PBIS, VASeller Centrify. Den här artikeln beskriver inte steg för varje enskilt verktyg. Du måste först använda något av dessa verktyg för att ansluta Linux-värden som kör SQL Server till domänen innan du fortsätter.

SQL Server använder inte någon kod eller ett bibliotek från tredje part för Active Directory-relaterade frågor. SQL Server frågar alltid Active Directory med hjälp av OpenLDAP-biblioteksanrop direkt i den här installationen. Tredjepartsintegratörer används endast för att koppla Linux-datorn till Active Directory-domänen, och SQL Server har ingen direkt kommunikation med dessa verktyg.

Viktig

Se rekommendationerna för att använda konfigurationsalternativet mssql-conf network.disablesssd i avsnittet Ytterligare konfigurationsalternativ i artikeln Använda Active Directory-autentisering med SQL Server på Linux.

Kontrollera att din /etc/krb5.conf är korrekt konfigurerad. För de flesta Active Directory-leverantörer från tredje part görs den här konfigurationen automatiskt. Kontrollera dock /etc/krb5.conf efter följande värden för att förhindra framtida problem:

sudo vi /etc/krb5.conf

Innehållet bör se ut ungefär som i följande exempel:

[libdefaults]
default_realm = CONTOSO.COM

[realms]
CONTOSO.COM = {
}

[domain_realm]
contoso.com = CONTOSO.COM
.contoso.com = CONTOSO.COM

Kontrollera att omvänd DNS är korrekt konfigurerad

Följande kommando ska returnera det fullständigt kvalificerade domännamnet (FQDN) för datorn som kör SQL Server. Ett exempel är SqlHost.contoso.com.

host <IP address of SQL Server host>

Utdata för det här kommandot bör likna <reversed IP address>.in-addr.arpa domain name pointer SqlHost.contoso.com. Om det här kommandot inte returnerar värdens FQDN, eller om det fullständiga domännamnet är felaktigt, lägger du till en omvänd DNS-post för SQL Server på Linux-värden till DNS-servern.

Nästa steg

I den här artikeln beskrivs hur du konfigurerar en SQL Server på en Linux-värddator med Active Directory-autentisering. Följ de här anvisningarna för att slutföra konfigurationen av SQL Server på Linux för att stödja Active Directory-konton.