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

Gäller för:SQL Server i Linux

Den här artikeln ger allmän vägledning om hur man ansluter till en Linux-värd som kör SQL Server till en služba Active Directory-domän. Det finns två metoder: använd ett inbyggt SSSD-paket eller använd služba Active Directory-leverantörer från tredje part. Exempel på tredjepartsdomänanslutningsprodukter är PowerBroker Identity Services (PBIS),One Identity Safeguard Authentication Services (VAS) och 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.

Note

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

Förutsättningar

Innan du konfigurerar služba Active Directory-autentisering behöver du sätta upp en dator som kör Windows Server som en služba Active Directory-domänkontrollant på ditt nätverk. Sedan ansluter man Linux-värden som kör SQL Server till en služba 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. De faktiska stegen kan skilja sig något beroende på din miljö och operativsystemversion. Till exempel använder Ubuntu 18.04 netplan medan 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.

Note

Från och med SQL Server 2025 (17.x) stöds inte SUSE Linux Enterprise Server (SLES).

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 PTR-poster som pekar på dina domänkontrollanter finns.

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. IP-adressen till domänkontrollanten bör också upplösas till domänkontrollantens fullt kvalificerade domännamn (FQDN):

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

Tip

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:

Distribution 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 služba 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
    

    Utdata ser 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
    

    Utdata ser 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
    

    Utdata ser ut ungefär som i följande exempel:

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

Ansluta till služba Active Directory-domänen

Efter att du verifierat grundläggande konfiguration och anslutning till domänkontrollanten finns det två alternativ för att ansluta en Linux-värd som kör SQL Server till služba Active Directory-domänen:

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

Denna metod ansluter Linux-värden som kör SQL Server till en služba Active Directory-domän med hjälp av paketen realmd och sssd.

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

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

Distribution 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 služba Active Directory med hjälp av Windows-domänmedlemskap
Ubuntu Konfigurera SSSD med služba Active Directory

Använd följande steg för att ansluta en Linux-värd som kör SQL Server till en služba Active Directory-domän:

  1. Använd Realmd för att ansluta din värddator till din služba Active Directory-domän. Du måste först installera både realmd- och Kerberos-klientpaketen på Linux-värden för SQL Server med din Linux-distributions 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 služba Active Directory-konto som har tillräcklig behörighet i služba Active Directory för att ansluta en ny dator till domänen. Det här kommandot skapar ett nytt datorkonto i služba 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 Recommendation
    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. Realmnamn är skiftlägeskänsliga, 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 služba 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.

    Använd id för att bekräfta att SSSD kan lösa domänanvändar- och gruppmedlemskap:

    id user@contoso.com
    

    Utdata ska visa domänanvändarens användar-ID, grupp-ID och gruppmedlemskap:

    uid=1348601103(user@contoso.com) gid=1348600513(domain group@contoso.com) groups=1348600513(domain group@contoso.com)
    

    Använd kinit för att begära ett Kerberos-ärende för domänanvändaren:

    kinit user@CONTOSO.COM
    

    Kommandot ska be om domänanvändarens lösenord:

    Password for user@CONTOSO.COM:
    

    Använd klist för att verifiera Kerberos-biljetten:

    klist
    

    Utdata bör identifiera domänanvändaren som standardprincip:

    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.

För mer information, se Red Hat-dokumentationen för att upptäcka och ansluta sig till en AD-domän med hjälp av SSSD.

Alternativ 2: Använd tredjepartsverktyg för služba Active Directory-leverantörer

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 ett av dessa verktyg för att ansluta den Linux-värd som kör SQL Server till domänen innan du fortsätter.

SQL Server använder inte kod eller bibliotek från tredjepartsintegratörer för några služba Active Directory-relaterade frågor. SQL Server frågar alltid služba Active Directory med hjälp av OpenLDAP-biblioteksanrop direkt i den här installationen. Integreringsverktyg från tredje part används endast för att ansluta Linux-värden till en služba Active Directory-domän, och SQL Server kommunicerar inte direkt med dessa verktyg.

Important

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

Kontrollera att din /etc/krb5.conf är korrekt konfigurerad. För de flesta služba 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

Utdata ser 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 detta kommando inte returnerar din värds FQDN, eller om FQDN:n är felaktigt, lägg till en omvänd DNS-post för Linux-värden som kör SQL Server till din DNS-server.

Nästa steg

I den här artikeln konfigurerade du en Linux-värd som kör SQL Server med služba 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 služba Active Directory-konton.