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 na Linuxu
Tento návod vysvětluje, jak nastavit autentizaci služba Active Directory pro SQL Server na Linux pomocí adutil. Další metodu konfigurace ověřování active directory pomocí ktpassu najdete v kurzu : Použití ověřování služba Active Directory s SQL Serverem v Linuxu.
Tento kurz se skládá z následujících úloh:
- Instalace aplikace
adutil - Připojení počítače s Linuxem k doméně služby služba Active Directory
- Vytvoření uživatele služba Active Directory pro SQL Server a nastavení hlavního názvu služby (SPN) pomocí
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ě služba Active Directory pomocí Transact-SQL
- Připojení k SQL Serveru pomocí ověřování služba Active Directory
Předpoklady
Před konfigurací ověřování služba Active Directory potřebujete:
- Řadič domény Systému Windows se službou Active Directory Domain Services ve vaší síti.
Příprava počítače domény
Ujistěte se, že je ve službě služba 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ě služba 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ý VM je klientský stroj s Windows 10 s názvem winbox, který má nainstalovaný 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 služba Active Directory
Pokud se chcete připojit sql1 k doméně služby služba Active Directory, přečtěte si téma Připojení SQL Serveru na hostiteli s Linuxem k doméně služby služba Active Directory.
Instalace nástroje adutil
Chcete-li nainstalovat adutil, postupujte podle kroků popsaných v článku Úvod do adutil – služba Active Directory nástroj 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 služba 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í
adutilvytvořte nového uživatele, který se použije jako privilegovaný účet služba Active Directory pomocí SQL Server.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 --helpCaution
Vaše heslo by mělo splňovat výchozí zásady hesla pro SQL Server. 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 adutil a integrovat jej s mssql-conf, abyste přímo pomocí mssql-conf vytvořili a nakonfigurovali keytab. 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ě.
Předpoklady
Ujistěte se, že
mssqluživatel vlastní/var/opt/mssql/mssql.confsoubor, a neroot. V opačném případě je nutné spustitmssql-confpříkazy pomocísudo.Na řadiči domény v nastavení služby služba 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 uživatele
mssql.su mssqlPřihlaste se jako uživatel služby služba 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 sqluserKdyž je vyzván restart služby SQL Server pro převzetí nové konfigurace služba Active Directory, můžete ji restartovat v sekci Restart SQL Server.
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
/var/opt/mssql/mssql.confnení vlastněnmssql, musíte nakonfigurovatmssql-conf, aby bylo nastavenonetwork.kerberoskeytabfileanetwork.privilegedadaccountpodle 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í služba Active Directory funguje bez jakýchkoli problémů.
/opt/mssql/bin/mssql-conf validate-ad-config /var/opt/mssql/secrets/mssql.keytabVýstup vypadá podobně jako v následujícím 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 ji nainstalovali adutil a integrovali s mssql-conf, tuto část můžete přeskočit.
Vytvořte soubor s klávesami, který obsahuje položky pro každé ze čtyř dříve vytvořených SPN.
adutil keytab createauto -k /var/opt/mssql/secrets/mssql.keytab -p 1433 -H sql1.contoso.com --password '<password>' -s MSSQLSvcCaution
Vaše heslo by mělo splňovat výchozí zásady hesla pro SQL Server. 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 služba 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ě služba Active Directory:
adutil keytab create -k /var/opt/mssql/secrets/mssql.keytab -p sqluser --password '<password>'Caution
Vaše heslo by mělo splňovat výchozí zásady hesla pro SQL Server. 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.
Příkaz
adutil keytab [ create | createauto ]nepřepíše předchozí soubor. Přidává se do souboru, pokud už je přítomen.-
Ujistěte se, že uživatel
mssqlje vlastníkem vytvořeného keytabu, a nastavte jeho oprávnění pouze ke čtení pro vlastníka a skupinu. 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 služba 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ě služba 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í služba Active Directory
Použijte své přihlašovací údaje pro Windows k připojení k instanci SQL Server pomocí SQL Server Management Studio.
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í služba Active Directory pro SQL Server na Linuxu a kontejnerech
- řešení potíží s ověřováním služba Active Directory pro SQL Server v Linuxu a kontejnerech
- Ověřování služba Active Directory pro SQL Server v Linuxu
- Tutorial: Konfigurace ověřování služba Active Directory pomocí kontejnerů SQL Server on Linux
- Rotace keytabů pro SQL Server na Linuxu