Připojení SQL Serveru na hostiteli s Linuxem k doméně služby služba Active Directory

Platí pro:SQL Server na Linuxu

Tento článek poskytuje obecné pokyny, jak připojit Linux host, který běží na SQL Server, k doméně služba Active Directory. Existují dvě metody: použijte integrovaný balíček SSSD nebo použijte zprostředkovatele služby služba Active Directory třetích stran. Příklady produktů třetích stran pro připojení domén jsou PowerBroker Identity Services (PBIS),One Identity Safeguard Authentication Services (VAS) a Centrify.

Tato příručka obsahuje kroky ke kontrole konfigurace služby služba Active Directory. Nemá ale v úmyslu poskytnout pokyny k připojení počítače k doméně při použití nástrojů třetích stran.

Note

Informace o konfiguraci služby služba Active Directory s novějšími verzemi Ubuntu, RHEL nebo SLES najdete v kurzu: Použití nástroje adutil ke konfiguraci ověřování služby služba Active Directory s SQL Serverem v Linuxu.

Předpoklady

Než nakonfigurujete autentizaci v služba Active Directory, musíte nastavit počítač s Windows Server jako služba Active Directory doménový řadič ve vaší síti. Pak připojte Linux host, který běží na SQL Server, k služba Active Directory doméně.

Ukázkové kroky popsané v tomto článku slouží pouze jako vodítko a odkazují na operační systémy Ubuntu 16.04, Red Hat Enterprise Linux (RHEL) 7.x a SUSE Linux Enterprise Server (SLES) 12. Skutečné kroky se mohou mírně lišit v závislosti na prostředí a verzi operačního systému. Například Ubuntu 18.04 používá netplan , zatímco RHEL 8.x používá nmcli a další nástroje pro správu a konfiguraci sítě. Měli byste zapojit správce systému a domény pro vaše prostředí pro konkrétní nástroje, konfiguraci, přizpůsobení a veškeré požadované řešení potíží.

Note

Od verze SQL Server 2025 (17.x) se nepodporuje SUSE Linux Enterprise Server (SLES).

Reverzní DNS (rDNS)

Když nastavíte počítač se systémem Windows Server jako řadičem domény, pravděpodobně ve výchozím nastavení nemáte zónu rDNS. Ujistěte se, že pro řadič domény i IP adresu počítače s Linuxem, na kterém bude spuštěn SQL Server, existuje příslušná zóna rDNS.

Také se ujistěte, že existují PTR záznamy ukazující na vaše doménové řadiče.

Kontrola připojení k řadiči domény

Zkontrolujte, zda můžete kontaktovat řadič domény jak pomocí krátkých, tak plně kvalifikovaných názvů domény, a také pomocí názvu hostitele řadiče domény. IP adresa doménového řadiče by se měla také překládát na plně kvalifikovaný název domény (FQDN) doménového řadiče:

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

Tip

Tento kurz používá contoso.com a CONTOSO.COM jako ukázkové názvy domén a sfér. Používá také DC1.CONTOSO.COM jako příklad plně kvalifikovaného názvu domény řadiče domény. Tyto názvy musíte nahradit vlastními hodnotami.

Aby se zajistilo správné překlad názvů domén, je důležité aktualizovat soubor /etc/resolv.conf, pokud se během kontrol názvů najdou nějaké nesrovnalosti. Postup aktualizace se liší v různých distribucích; proto je vhodné poradit se s oficiální dokumentací pro přesné pokyny. Následující seznam obsahuje odkazy pro některé distribuce a jejich verze klíčů:

Distribuce Referenční článek
RHEL 8 ruční konfigurace /etc/resolv.conf
RHEL 9 ruční konfigurace /etc/resolv.conf
SLES 15 Nastavení pro NETCONFIG_DNS_STATIC_SEARCHLIST a NETCONFIG_DNS_STATIC_SERVERS
Ubuntu sekce pro řešení názvů

Cílem je správně nakonfigurovat /etc/resolv.conf pro vaši distribuci, aby se usnadnilo rozlišení názvů domén. Pokud je vaše doména například contoso.com a IP adresa služby služba Active Directory je 10.0.0.4, měli byste /etc/resolv.conf nastavit odpovídajícím způsobem k zajištění úspěšného přeložení názvů z hostitele.

cat /etc/resolv.conf

Tady je soubor výsledků.

# Generated by NetworkManager
search contoso.com com
nameserver 10.0.0.4

RHEL 7.x

  1. Upravte soubor /etc/sysconfig/network-scripts/ifcfg-eth0 tak, aby vaše doména služby služba Active Directory byla v seznamu vyhledávacích domén. Nebo podle potřeby upravte jiný konfigurační soubor rozhraní:

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

    Výstup vypadá podobně jako v následujícím příkladu:

    PEERDNS=no
    DNS1=<Domain controller IP address>
    DOMAIN="contoso.com com"
    
  2. Po úpravě tohoto souboru restartujte síťovou službu:

    sudo systemctl restart network
    
  3. Teď zkontrolujte, jestli soubor /etc/resolv.conf obsahuje řádek podobný následujícímu příkladu:

    sudo vi /etc/resolv.conf
    

    Výstup vypadá podobně jako v následujícím příkladu:

    search contoso.com com
    nameserver <Domain controller IP address>
    
  4. Pokud stále nemůžete odeslat příkaz ping na řadič domény, vyhledejte plně kvalifikovaný název domény a IP adresu řadiče domény. Příklad názvu domény je DC1.CONTOSO.COM. Do /etc/hostspřidejte následující položku:

    sudo vi /etc/hosts
    

    Výstup vypadá podobně jako v následujícím příkladu:

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

Připojení k doméně služby služba Active Directory

Po ověření základní konfigurace a propojení s doménovým řadičem existují dvě možnosti, jak připojit Linux host, který běží na SQL Server, k doméně služba Active Directory:

Možnost 1: Připojení domény služby služba Active Directory pomocí balíčku SSSD

Tato metoda spojuje Linux hostitele, který provozuje SQL Server, s doménou služba Active Directory pomocí balíčků realmd a sssd.

Toto je upřednostňovaná metoda připojení hostitele Linuxu k řadiči domény služby služba Active Directory.

Nejnovější pokyny najdete v oficiální dokumentaci od distribučních partnerů.

Distribuce Referenční článek
RHEL 8 Zjišťování a připojování k doméně AD pomocí SSSD
RHEL 9 Zjišťování a připojování k doméně AD pomocí SSSD
SLES připojení ke službě služba Active Directory přes členství v doméně Windows
Ubuntu Jak nastavit SSSD se systémem služba Active Directory

Použijte následující kroky k připojení Linux hostu, který běží na SQL Server, k služba Active Directory doméně:

  1. Použijte realmd k připojení hostitelského počítače k služba Active Directory doméně. Nejprve musíte nainstalovat klientské balíčky realmd i Kerberos na hostitele SQL Server Linux pomocí správce balíčků vaší linuxové distribuce:

    RHEL:

    sudo yum install realmd krb5-workstation
    

  1. Pokud se při instalaci klientského balíčku Kerberos zobrazí výzva k zadání názvu sféry, zadejte název domény velkými písmeny.

  2. Jakmile ověříte, že je dns správně nakonfigurovaný, připojte se k doméně spuštěním následujícího příkazu. K připojení nového počítače k doméně musíte použít účet služby služba Active Directory, který má dostatečná oprávnění ve službě služba Active Directory. Tento příkaz vytvoří nový účet počítače ve službě služba Active Directory, vytvoří soubor klíče hostitele /etc/krb5.keytab, nakonfiguruje doménu v /etc/sssd/sssd.confa aktualizuje /etc/krb5.conf.

    Kvůli problému s realmd nejprve nastavte název hostitele počítače na FQDN místo pouze názvu počítače. Jinak realmd nemusí vytvořit všechny požadované hlavní názvy služeb (SPN) pro počítač a záznamy DNS se nemusí automaticky aktualizovat, i když váš řadič domény podporuje dynamické aktualizace DNS.

    sudo hostname <old hostname>.contoso.com
    

    Po spuštění tohoto příkazu by měl soubor /etc/hostname obsahovat <old hostname>.contoso.com.

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

    Měla by se zobrazit zpráva, Successfully enrolled machine in realm.

    V následující tabulce jsou uvedeny některé chybové zprávy, které můžete obdržet a navrhnout jejich řešení:

    Zpráva o chybě Recommendation
    Necessary packages are not installed Před opětovným spuštěním příkazu realm join nainstalujte tyto balíčky pomocí správce balíčků vaší linuxové distribuce.
    Insufficient permissions to join the domain Obraťte se na správce domény, že máte dostatečná oprávnění pro připojení počítačů s Linuxem k vaší doméně.
    KDC reply did not match expectations Je možné, že jste pro uživatele nezadáli správné jméno sféry. Názvy domén jsou citlivé na velká písmena, obvykle velká, a lze je identifikovat příkazem realm discover contoso.com.

    SQL Server k mapování uživatelských účtů a skupin na identifikátory zabezpečení (SID) používá SSSD a NSS. Aby bylo možné úspěšně vytvořit přihlášení služby služba Active Directory, musí být služba SSSD nakonfigurovaná a spuštěná pro SQL Server. realmd to obvykle dělá automaticky při připojování k doméně, ale v některých případech to musíte udělat samostatně.

    Další informace najdete v tématu, jak nakonfigurovat SSSD ručněa nakonfigurovat NSS pro práci sSSSD .

  3. Ověřte, že teď můžete shromažďovat informace o uživateli z domény a že můžete získat lístek Kerberos jako tento uživatel. Následující příklad používá id, kinita klist příkazy pro tento příkaz.

    Použijte id k potvrzení, že SSSD dokáže vyřešit členství v doménách uživatelů a skupin:

    id user@contoso.com
    

    Výstup by měl zobrazovat uživatelské ID uživatele domény, ID skupiny a členství ve skupině:

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

    Použití kinit pro žádost o Kerberos ticket pro uživatele domény:

    kinit user@CONTOSO.COM
    

    Příkaz by měl vyzvat k zadání hesla uživatele domény:

    Password for user@CONTOSO.COM:
    

    Použijte klist k ověření lístku Kerberos:

    klist
    

    Výstup by měl identifikovat uživatele domény jako výchozího principa:

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

    Pokud id user@contoso.com vrátí No such user, ověřte spuštěním příkazu sudo systemctl status sssd, že byla služba SSSD úspěšně spuštěna. Pokud je služba spuštěná a stále se zobrazí chyba, zkuste pro SSSD povolit podrobné protokolování. Další informace najdete v dokumentaci Red Hat pro řešení potíží s SSSD.

    Pokud kinit user@CONTOSO.COM vrací hodnotu KDC reply didn't match expectations while getting initial credentials, ujistěte se, že jste zadali sféru velkými písmeny.

Pro více informací viz dokumentace Red Hat pro Objevování a připojení k AD doméně pomocí SSSD.

Možnost 2: Použít nástroje poskytovatelů služba Active Directory třetích stran

Můžete použít nástroje třetích stran, jako jsou PBIS, vasnebo Centrify. Tento článek neobsahuje kroky pro jednotlivé nástroje. Nejprve musíte použít jeden z těchto nástrojů, abyste se připojili k linuxovému hostiteli, který běží na SQL Server, k této doméně, než budete pokračovat.

SQL Server nepoužívá kód ani knihovny od třetích stran pro žádné dotazy související s služba Active Directory. SQL Server vždy dotazuje službu služba Active Directory pomocí volání knihovny OpenLDAP přímo v tomto nastavení. Integrátoři třetích stran slouží pouze k připojení linuxového hostitele k doméně služba Active Directory a SQL Server s těmito nástroji nemá žádnou přímou komunikaci.

Important

Podívejte se na doporučení pro použití možnosti konfigurace mssql-conf network.disablesssd v části Další možnosti konfigurace v článku Použití ověřování služba Active Directory s SQL Serverem v Linuxu.

Ověřte, že je /etc/krb5.conf správně nakonfigurovaný. U většiny poskytovatelů active directory třetích stran se tato konfigurace provádí automaticky. Nejprve ale zkontrolujte /etc/krb5.conf kvůli následujícím hodnotám, abyste zabránili jakýmkoli budoucím problémům:

sudo vi /etc/krb5.conf

Výstup vypadá podobně jako v následujícím příkladu:

[libdefaults]
default_realm = CONTOSO.COM

[realms]
CONTOSO.COM = {
}

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

Zkontrolujte, jestli je reverzní DNS správně nakonfigurovaný.

Následující příkaz by měl vrátit plně kvalifikovaný název domény (FQDN) hostitele, na kterém běží SQL Server. Příklad: SqlHost.contoso.com.

host <IP address of SQL Server host>

Výstup tohoto příkazu by měl být podobný <reversed IP address>.in-addr.arpa domain name pointer SqlHost.contoso.com. Pokud tento příkaz nevrátí FQDN vašeho hostitele, nebo pokud je FQDN nesprávný, přidejte zpětný DNS záznam pro Linux hostitele, který běží na SQL Server, na váš DNS server.

Další krok

V tomto článku jste nakonfigurovali linuxový hostitel, který běží na SQL Server s autentizací přes služba Active Directory. Pokud chcete dokončit konfiguraci SQL Serveru v Linuxu pro podporu účtů služby služba Active Directory, postupujte podle těchto pokynů.

Návod: Použití ověřování služba Active Directory s SQL Serverem na Linuxu