Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server – Linux
Tento kurz vysvětluje, jak nakonfigurovat ověřování windows Active Directory pro SQL Server v Linuxu pomocí nástroje adutil. Další metodu konfigurace ověřování active directory pomocí ktpassu najdete v kurzu : Použití ověřování Active Directory s SQL Serverem v Linuxu.
Tento kurz se skládá z následujících úloh:
- Instalujte adutil
- Připojení počítače s Linuxem k doméně služby Active Directory
- Vytvoření uživatele služby Active Directory pro SQL Server a nastavení hlavního názvu služby (SPN) pomocí nástroje adutil
- Vytvoření souboru keytab služby SQL Serveru (tabulka klíčů)
- Konfigurace SQL Serveru pro použití souboru keytab
- Vytváření přihlášení SQL Serveru založeného na službě Active Directory pomocí Transact-SQL
- Připojení k SQL Serveru pomocí ověřování Active Directory
Požadavky
Před konfigurací ověřování Active Directory potřebujete:
- Řadič domény Systému Windows se službou Active Directory Domain Services ve vaší síti.
- Nástroj adutil nainstalovaný na hostitelském počítači připojeném k doméně.
Příprava počítače domény
Ujistěte se, že je ve službě Active Directory přidaný záznam přesměrovacího hostitele (A) pro IP adresu Linuxového hostitele. V tomto kurzu je IP adresa počítače sql1 hostitele 10.0.0.10. V následujícím příkladu přidáme položku hostitele pro předávání ve službě Active Directory. Položka zajišťuje, že když se uživatelé připojí k sql1.contoso.com, dosáhne správného hostitele.
Pro účely tohoto kurzu použijete prostředí v Azure se třemi virtuálními počítači. Jeden virtuální počítač je počítač s Windows Serverem, adVM.contoso.com, který běží jako řadič domény (DC) s názvem domény contoso.com. Druhý virtuální počítač je klientský počítač s Windows 10 s názvem winbox, který má nainstalovanou aplikaci SQL Server Management Studio (SSMS). Třetí počítač je počítač s Ubuntu 18.04 LTS s názvem sql1, který hostuje SQL Server.
Připojení hostitelského počítače s Linuxem k doméně služby Active Directory
Pokud se chcete připojit sql1 k doméně služby Active Directory, přečtěte si téma Připojení SQL Serveru na hostiteli s Linuxem k doméně služby Active Directory.
Instalace nástroje adutil
Chcete-li nainstalovat nástroj adutil, postupujte podle kroků popsaných v článku Úvod do nástroje adutil - Active Directory na hostitelském počítači, který jste přidali do domény v předchozím kroku.
Použití nástroje adutil k vytvoření uživatele služby Active Directory pro SQL Server a nastavení hlavního názvu služby (SPN)
Pomocí příkazu
kinitzískejte nebo obnovte lístek TGT (ticket-granting ticket) protokolu Kerberos. Pro příkaz musíte použít privilegovaný účetkinita hostitelský počítač by už měl být součástí domény. Účet potřebuje oprávnění k připojení k doméně a k vytvoření účtů a SPN v doméně.V tomto ukázkovém skriptu se na řadiči domény už vytvoří privilegovaný uživatel
privilegeduser@CONTOSO.COM.kinit privilegeduser@CONTOSO.COMPomocí nástroje adutil vytvořte nového uživatele, který se použije jako privilegovaný účet služby Active Directory sql Serverem.
Hesla je možné zadat třemi různými způsoby. Pokud používáte více než jednu z těchto metod, mají přednost v následujícím pořadí:
- Použití příznaku hesla:
--password <password> - V proměnné prostředí:
ADUTIL_ACCOUNT_PWD - Interaktivní vstup na příkazovém řádku
Proměnné prostředí nebo interaktivní metody zadávání jsou bezpečnější než příznak hesla.
adutil user create --name sqluser --distname CN=sqluser,CN=Users,DC=CONTOSO,DC=COM --password '<password>'Název účtu můžete zadat pomocí rozlišujícího názvu (
--distname), jak je znázorněno výše, nebo můžete použít název organizační jednotky (OU). Název organizační jednotky (--ou) má přednost před rozlišujícím názvem v případě, že zadáte obojí. Další podrobnosti získáte spuštěním následujícího příkazu:adutil user create --helpUpozornění
Vaše heslo by mělo postupovat podle výchozích zásad hesel SQL Serveru . Ve výchozím nastavení musí heslo obsahovat alespoň osm znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice se základem 10 a symboly. Hesla můžou mít délku až 128 znaků. Používejte hesla, která jsou co nejdéle a složitá.
- Použití příznaku hesla:
Zaregistrujte SPN k principálu vytvořenému dříve. Musíte použít plně kvalifikovaný název domény (FQDN) počítače. V tomto kurzu používáme výchozí port SQL Serveru 1433. Číslo portu se může lišit.
adutil spn addauto -n sqluser -s MSSQLSvc -H sql1.contoso.com -p 1433-
addautovytvoří hlavní názvy služeb automaticky, pokud má účet dostatečná oprávněníkinit. -
-n: Název účtu pro přiřazení hlavních názvů služeb. -
-s: Název služby, který se má použít pro generování SPN. V tomto případě se jedná o službu SQL Serveru, což je důvod, proč jeMSSQLSvcnázev služby . -
-H: Název hostitele, který se má použít pro generování hlavních názvů služeb (SPN). Pokud není zadaný, použije se plně kvalifikovaný název domény místního hostitele. V tomto případě jesql1název hostitele a plně kvalifikovaný název domény jesql1.contoso.com. -
-p: Port, který se má použít pro generování SPN (hlavních názvů služeb). Pokud je nezadáte, hlavní názvy služeb se vygenerují bez portu. Připojení SQL v tomto případě fungují jenom v případě, že instance SQL Serveru naslouchá výchozímu portu 1433.
-
Vytvoření souboru keytab služby SQL Serveru pomocí mssql-conf
Můžete nainstalovat nástroj adutil a integrovat ho s mssql-conf a vytvořit a nakonfigurovat keytab pomocí mssql-conf přímo. Tato metoda je upřednostňovaná pro vytvoření souboru s klíči služby SQL Serveru. V opačném případě můžete soubor keytab služby SQL Serveru vytvořit ručně.
Požadavky
Ujistěte se, že
mssqluživatel vlastní/var/opt/mssql/mssql.confsoubor, a neroot. V opačném případě je nutné spustit příkazy mssql-conf pomocísudo.Na řadiči domény v nastavení služby Active Directory pro
network.privilegedadaccountúčet (v těchto příkladechsqluser@CONTOSO.COM) povolte na kartě Účet následující možnosti v části Možnosti účtu :- Tento účet podporuje 128bitové šifrování Kerberos AES.
- Tento účet podporuje 256bitové šifrování Kerberos AES.
Vytvoření souboru keytab
Jakmile vytvoříte uživatele a SPN, můžete vytvořit keytab pomocí následujícího postupu.
Přepněte na
oracleuživatele:su mssqlPřihlaste se jako uživatel služby Active Directory pomocí
kinitpříkazu:kinit privilegeduser@CONTOSO.COMVytvořte soubor keytab:
/opt/mssql/bin/mssql-conf setup-ad-keytab /var/opt/mssql/secrets/mssql.keytab sqluserPo zobrazení výzvy k restartování služby SQL Server pro přijetí nové konfigurace služby Active Directory to můžete provést v následující části.
Ověřte, že se vytvoří klávesová zkratka se správnými položkami:
klist -kte /var/opt/mssql/secrets/mssql.keytabMěl by se zobrazit výstup podobný tomuto příkladu:
keytab name: FILE:/var/opt/mssql/secrets/mssql.keytab KVNO Timestamp Principal ---- ------------------- ------------------------------------------------------ 4 12/30/2021 14:02:08 sqluser@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1.contoso.com:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1.contoso.com@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1@CONTOSO.COM (aes256-cts-hmac-sha1-96)Pokud soubor nevlastní
/var/opt/mssql/mssql.conf, musíte nakonfigurovatmssqltak, aby nastavil hodnoty anetwork.kerberoskeytabfilepodle předchozích kroků. Po zobrazení výzvy zadejte heslo./opt/mssql/bin/mssql-conf set network.kerberoskeytabfile /var/opt/mssql/secrets/mssql.keytab /opt/mssql/bin/mssql-conf set network.privilegedadaccount sqluserOvěřte konfiguraci a ujistěte se, že ověřování Active Directory funguje bez jakýchkoli problémů.
/opt/mssql/bin/mssql-conf validate-ad-config /var/opt/mssql/secrets/mssql.keytabMěl by se zobrazit výstup podobný následujícímu příkladu:
Detected Configuration: Default Realm: CONTOSO.COM Keytab: /var/opt/mssql/secrets/mssql.keytab Reverse DNS Result: sql1.contoso.com SQL Server Port: 1433 Detected SPNs (SPN, KVNO): (MSSQLSvc/sql1.CONTOSO.COM:1433, 4) (MSSQLSvc/sql1.CONTOSO.COM, 4) (MSSQLSvc/sql1:1433, 4) (MSSQLSvc/sql1, 4) Privileged Account (Name, KVNO): (sqluser, 4)
Ruční vytvoření souboru keytab služby SQL Serveru
Pokud jste nainstalovali nástroj adutil a integrovali ho s mssql-conf, můžete přeskočit k vytvoření souboru keytab služby SQL Serveru pomocí mssql-conf.
Vytvořte soubor keytab, který obsahuje položky pro každý ze čtyř SPN vytvořených dříve a také jednu pro uživatele.
adutil keytab createauto -k /var/opt/mssql/secrets/mssql.keytab -p 1433 -H sql1.contoso.com --password '<password>' -s MSSQLSvcUpozornění
Vaše heslo by mělo postupovat podle výchozích zásad hesel SQL Serveru . Ve výchozím nastavení musí heslo obsahovat alespoň osm znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice se základem 10 a symboly. Hesla můžou mít délku až 128 znaků. Používejte hesla, která jsou co nejdéle a složitá.
Možné možnosti příkazového řádku:
-
-k: Cesta, kde semssql.keytabsoubor vytvoří. V předchozím příkladu by adresář/var/opt/mssql/secrets/již měl existovat na hostiteli. -
-p: Port, který se má použít pro generování SPN (hlavních názvů služeb). Pokud je nezadáte, hlavní názvy služeb se vygenerují bez portu. -
-H: Název hostitele, který se má použít pro generování hlavních názvů služeb (SPN). Pokud není zadaný, použije se plně kvalifikovaný název domény místního hostitele. V tomto případě jesql1název hostitele a plně kvalifikovaný název domény jesql1.contoso.com. -
-s: Název služby, který se má použít pro generování SPN. V tomto příkladu jeMSSQLSvcnázev služby SYSTÉMU SQL Server . -
--password: Heslo privilegovaného uživatelského účtu služby Active Directory, který byl vytvořen dříve. -
-enebo--enctype: Typy šifrování pro položku keytab. Použijte čárkami oddělený seznam hodnot. Pokud není zadaný, zobrazí se interaktivní výzva.
Můžete zvolit více než jeden typ šifrování, pokud váš hostitel a doména podporují typ šifrování. V tomto příkladu můžete zvolit
aes256-cts-hmac-sha1-96aaes128-cts-hmac-sha1-96. V produkčním prostředí byste se ale měli vyhnoutarcfour-hmac, protože má slabé šifrování.Pokud chcete zvolit typ šifrování bez výzvy, můžete pomocí argumentu
-ev předchozím příkazu zadat typ šifrování. Další nápovědu k možnostemadutil keytabmůžou získat spuštěním tohoto příkazu:adutil keytab createauto --help-
Do tabulky klíčů přidejte položku pro hlavní název a heslo, které SQL Server používá pro připojení ke službě Active Directory:
adutil keytab create -k /var/opt/mssql/secrets/mssql.keytab -p sqluser --password '<password>'Upozornění
Vaše heslo by mělo postupovat podle výchozích zásad hesel SQL Serveru . Ve výchozím nastavení musí heslo obsahovat alespoň osm znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice se základem 10 a symboly. Hesla můžou mít délku až 128 znaků. Používejte hesla, která jsou co nejdéle a složitá.
-
-k: Cesta, kde chcete vytvořit soubormssql.keytab. -
-p: Principal, který chcete přidat do klíčové tabulky.
Nepřepíše
adutil keytab [ create | autocreate ]předchozí soubory, jenom se připojí k souboru, pokud už je k dispozici.-
Ujistěte se, že
mssqluživatel vlastní vytvořenou klávesu keytab a že k souboru má přístup jenmssqlpro čtení a zápis. Příkazychownachmodmůžete spustit následujícím způsobem:chown mssql /var/opt/mssql/secrets/mssql.keytab chmod 440 /var/opt/mssql/secrets/mssql.keytab
Konfigurace SQL Serveru pro použití klávesové zkratky
Spuštěním následujících příkazů nakonfigurujte SQL Server tak, aby používal klávesová zkratka vytvořená v předchozím kroku, a nastavte privilegovaný účet Active Directory jako dříve vytvořený uživatel. V našem příkladu je sqluseruživatelské jméno .
/opt/mssql/bin/mssql-conf set network.kerberoskeytabfile /var/opt/mssql/secrets/mssql.keytab
/opt/mssql/bin/mssql-conf set network.privilegedadaccount sqluser
Restartování SQL Serveru
Spuštěním následujícího příkazu restartujte službu SQL Serveru:
sudo systemctl restart mssql-server
Vytvoření přihlášení SQL Serveru založeného na službě Active Directory v Transact-SQL
Připojte se k instanci SQL Serveru a spuštěním následujících příkazů vytvořte přihlášení a potvrďte, že existuje.
CREATE LOGIN [contoso\privilegeduser]
FROM WINDOWS;
SELECT name
FROM sys.server_principals;
Připojení k SQL Serveru pomocí ověřování Active Directory
Pomocí přihlašovacích údajů systému Windows se připojte k instanci SQL Serveru pomocí aplikace SQL Server Management Studio (SSMS).
Můžete také použít nástroj, jako je nástroj sqlcmd pro připojení k instanci SYSTÉMU SQL Server pomocí ověřování systému Windows.
sqlcmd -E -S 'sql1.contoso.com'
Související obsah
- Pochopit, jak funguje ověřování Active Directory pro SQL Server na Linuxu a kontejnerech
- řešení potíží s ověřováním Active Directory pro SQL Server v Linuxu a kontejnerech
- Ověřování Active Directory pro SQL Server na Linuxu
- Kurz : Konfigurace ověřování Active Directory s SQL Serverem v kontejnerech Linuxu
- Rotace keytabů pro SQL Server na Linuxu