Sdílet prostřednictvím


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

platí pro:SQL Server – Linux

Tento článek obsahuje obecné pokyny k připojení hostitelského počítače s SQL Serverem s Linuxem k doméně služby Active Directory. Existují dvě metody: použijte integrovaný balíček SSSD nebo použijte zprostředkovatele služby Active Directory třetích stran. Příklady produktů pro připojení k doméně třetích stran jsou služby PBIS (PowerBroker Identity Services), one identitya Centrify.

Tato příručka obsahuje kroky ke kontrole konfigurace služby 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.

Poznámka

Informace o konfiguraci služby 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 Active Directory s SQL Serverem v Linuxu.

Požadavky

Než nakonfigurujete ověřování služby Active Directory, musíte ve vaší síti nastavit řadič domény služby Active Directory, Windows. Pak připojte SQL Server na hostiteli s Linuxem k doméně služby Active Directory.

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 můžou mírně lišit v prostředí v závislosti na tom, jak je vaše celkové prostředí nakonfigurované a verze operačního systému. Například Ubuntu 18.04 používá netplan zatímco Red Hat Enterprise Linux (RHEL) 8.x používá nmcli mimo jiné nástroje ke správě 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íží.

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 existuje záznam PTR, který odkazuje na vaše řadiče domény.

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

Zkontrolujte, že můžete kontaktovat řadič domény pomocí krátkých i plně kvalifikovaných názvů domény a pomocí názvu hostitele řadiče domény. IP adresa řadiče domény by se také měla přeložit na plně kvalifikovaný doménový název řadiče domény.

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

Spropitné

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í NETCONFIG_DNS_STATIC_SEARCHLIST a NETCONFIG_DNS_STATIC_SERVERS
Ubuntu oddílu ř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 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 sada 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 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
    

    Obsah by měl vypadat 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
    

    Obsah by měl vypadat 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
    

    Obsah by měl vypadat podobně jako v následujícím příkladu:

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

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

Po ověření základní konfigurace a připojení k řadiči domény existují dvě možnosti připojení hostitelského počítače s SQL Serverem s řadičem domény služby Active Directory:

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

Tato metoda připojí hostitele SQL Serveru k doméně služby 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 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ě Active Directory přes členství v doméně Windows
Ubuntu Jak nastavit SSSD se systémem Active Directory

Pomocí následujících kroků připojte hostitele SQL Serveru k doméně služby Active Directory:

  1. Pomocí realmd připojte hostitelský počítač k doméně služby Active Directory. Nejprve je nutné nainstalovat balíčky klienta sféry i kerberos na hostitelský počítač s SQL Serverem pomocí správce balíčků vaší distribuce linuxu:

    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 Active Directory, který má dostatečná oprávnění ve službě Active Directory. Tento příkaz vytvoří nový účet počítače ve službě 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 realmdnejprve nastavte název hostitele počítače na jeho plně kvalifikovaný název domény (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ě Doporučení
    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. V názvech sfér se rozlišují malá a velká písmena, obvykle jsou psána velkými písmeny a lze je identifikovat pomocí příkazu 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 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.

    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
    

    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.

Další informace naleznete v dokumentaci Red Hat týkající se zjišťování a připojování domén identit.

Možnost 2: Použití nástrojů poskytovatele OpenLDAP 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. Než budete pokračovat dál, musíte nejprve použít jeden z těchto nástrojů pro připojení hostitele Linuxu pro SQL Server k doméně.

SQL Server nepoužívá kód ani knihovnu integrátora třetích stran pro žádné dotazy související se službou Active Directory. SQL Server vždy dotazuje službu Active Directory pomocí volání knihovny OpenLDAP přímo v tomto nastavení. Integrátory třetích stran se používají pouze k připojení hostitele Linuxu k doméně služby Active Directory a SQL Server s těmito nástroji nemá přímou komunikaci.

Důležitý

Přečtěte si 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í 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

Obsah by měl vypadat 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říkladem je 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í plně kvalifikovaný název domény hostitele nebo pokud je plně kvalifikovaný název domény nesprávný, přidejte na server DNS reverzní položku DNS pro SQL Server na hostiteli s Linuxem.

Další krok

V tomto článku jste se dozvěděli, jak nakonfigurovat SQL Server na hostitelském počítači s Linuxem pomocí ověřování Active Directory. Pokud chcete dokončit konfiguraci SQL Serveru v Linuxu pro podporu účtů služby Active Directory, postupujte podle těchto pokynů.