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 v Linuxu
Na základě osvědčených postupů zabezpečení vaší organizace může být nutné pravidelně obměňovat heslo pro účet služby Windows služba Active Directory poskytovaný jako network.privilegedadaccount v mssql.confnebo jakýkoli jiný účet, který vlastní hlavní názvy služby (SPN) pro službu SQL Server. Podporovaná metoda pro změnu hesla pro účet je zdokumentovaná v tomto článku. Změna hesla se projeví bez nutnosti restartovat službu SQL Serveru v Linuxu.
Nástroj adutil slouží k aktualizaci klávesové zkratky. Příkaz adutil musí být spuštěný z počítače připojeného k doméně. Další informace o nástroji adutil a o tom, jak nástroj stáhnout, najdete v tématu Introduction do adutilu – nástroj služba Active Directory.
Před aktualizací ve službě služba Active Directory je důležité aktualizovat nové heslo v tabulce klíčů následujícím číslem kvno. Pokud použijete další kvno číslo, zabráníte tomu, aby se služba SQL Serveru po změně hesla restartovala. Pokud nejprve aktualizujete heslo ve službě služba Active Directory a pak změníte klávesovou zkratku, musíte restartovat službu SQL Serveru, aby bylo zajištěno, že ověřování služby služba Active Directory funguje správně.
Scénář pro rotaci keytabu
Podívejme se na příklad. Ověřování služba Active Directory už je pro SQL Server v Linuxu povolené. V souboru mssql.conf nastavíte network.privilegedadaccount na sqluser. Účet sqluser@CONTOSO.COM je již vytvořen ve službě služba Active Directory a klávesová zkratka se vytvoří také ve výchozím umístění /var/opt/mssql/secrets/mssql.keytab. Teď chcete změnit heslo pro sqluser@CONTOSO.COM. Tady jsou kroky, které je potřeba provést:
Instalace nástroje adutil na počítači připojeném k doméně.
Pomocí příkazu
kinitzískáte nebo obnovíte TGT lístek (ticket-granting ticket) protokolu Kerberos. Pro příkazkinitpoužijte privilegovaný účet. Účet musí mít oprávnění pro připojení k doméně a měl by mít možnost vytvářet účty a SPN v doméně. V tomto případě používáme účetprivilegeduser@CONTOSO.COM, který má oprávnění k vytváření účtů a SPN v naší doméně nazývanéCONTOSO.COM.kinit privilegeduser@CONTOSO.COMPo spuštění
kinit, abyste získali nebo obnovili TGT, dotažte se na číslo aktuálního kvno pronetwork.privilegedadaccount. V tomto případě je tosqluser@CONTOSO.COM.kvno sqluser@CONTOSO.COM
Můžete se rozhodnout rotovat keytab pomocí mssql-conf nebo rotovat keytab ručně pomocí adutil.
Otočení keytab souboru pomocí mssql-conf
Můžete nainstalovat adutil a integrovat ji s mssql-conf, což znamená, že můžete rotovat keytab pomocí mssql-conf.
Přihlaste se jako uživatel root a přepněte se na uživatele
mssql.su mssqlPomocí příkazu
kinitzískáte nebo obnovíte TGT lístek (ticket-granting ticket) protokolu Kerberos. Pro příkazkinitpoužijte privilegovaný účet. Účet musí mít oprávnění pro připojení k doméně a měl by mít možnost vytvářet účty a SPN v doméně. V tomto případě používáme účetprivilegeduser@CONTOSO.COM, který má oprávnění k vytváření účtů a SPN v naší doméně nazývanéCONTOSO.COM.kinit privilegeduser@CONTOSO.COMSpusťte příkaz
mssql-confa zadejte SQL Server keytab a podrobnostinetwork.privilegedadaccount. V tomto příkladu jeprivilegedadaccountsqluser../mssql-conf setup-ad-keytab /var/opt/mssql/secrets/mssql.keytab sqluser --use-next-kvno'Po zobrazení výzvy k zadání hesla zadejte nové heslo, které chcete použít. Možnost
--use-next-kvnopřiděluje aktuálnímu kvno hodnotu + 1.Nepovinný: Můžete také použít možnost
--kvnos příkazemmssql-conf setup-ad-keytabk zadání konkrétního kvno. Nejprve musíte zajistit, abyste získali aktuální kvno pro uživatele, a pak aktualizujte nový kvno odpovídajícím způsobem, což bude aktuální kvno + 1.Pomocí příkazu můžete vypsat klíče klávesové zkratky:
klist -kte /var/opt/mssql/secrets/mssql.keytabVšimněte si, že keytab se aktualizuje o další kvno pro položky uživatele i hlavního názvu služby (SPN).
Teď můžete změnit heslo pro
sqluseruživatele. Tady je příklad.Důležitý
Pokud se během tohoto kroku zobrazí výzva k restartování SQL Serveru, můžete ho ignorovat. Nezapomeňte také změnit heslo v služba Active Directory.
bash-4.4$ kinit privilegedaccount@CONTOSO.COM Password for privilegedaccount@CONTOSO.COM: bash-4.4$ ./mssql-conf setup-ad-keytab /var/opt/mssql/secrets/mssql.keytab sqluser --use-next-kvno sqluser@contoso.com's password: Confirm sqluser@contoso.com's password: SQL Server needs to be restarted in order to adopt the new AD configuration. To restart, run `systemctl restart mssql-server.service`. bash-4.4$ klist -kte /var/opt/mssql/secrets/mssql.keytab 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) 5 12/30/2021 20:06:34 sqluser@CONTOSO.COM (aes256-cts-hmac-sha1-96) 5 12/30/2021 20:06:34 MSSQLSvc/sql1.contoso.com:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 5 12/30/2021 20:06:34 MSSQLSvc/sql1.contoso.com@CONTOSO.COM (aes256-cts-hmac-sha1-96) 5 12/30/2021 20:06:34 MSSQLSvc/sql1:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 5 12/30/2021 20:06:34 MSSQLSvc/sql1@CONTOSO.COM (aes256-cts-hmac-sha1-96)
Ruční otáčení keytabu pomocí nástroje adutil
Pokud chcete klávesovou zkratku aktualizovat ručně pomocí adutil, projděte si následující kroky.
Aktualizace klávesové zkratky pomocí adutil přidá položku do aktuální klávesové zkratky. Pokud je například kvno číslo z předchozího příkazu 2, použijte při aktualizaci keytab kvno číslo 3. Následují adutil příkazy, které je potřeba spustit.
- Změňte číslo portu (
-p), název hostitele (-H), cestu k klíčové tabulce (-k) a číslo kvno tak, aby odpovídalo vašemu prostředí.
adutil keytab createauto -k /var/opt/mssql/secrets/mssql.keytab -p 1433 -H mssql.contoso.com --password '<newpassword>' -s MSSQLSvc --kvno 3
adutil keytab create -k /var/opt/mssql/secrets/mssql.keytab -p sqluser --password '<newpassword>' --kvno 3
| Parameter | Description |
|---|---|
-k |
Cesta k aktuální tabulce klíčů, kterou používá SQL Server, a nastavena pomocí možnosti network.kerberoskeytabfile v mssql.conf souboru. |
-H |
Plně kvalifikovaný název domény hostitele SQL Serveru. |
-p |
Port, na který je služba SQL Serveru nakonfigurovaná tak, aby naslouchala v prvním příkazu. V druhém příkazu -p představuje network.privilegedadaccount, pro které budete aktualizovat heslo. |
kvno |
Hodnota musí být aktuální kvno + 1. Aktuální hodnota kvno se získá z kroku 3. |
Jakmile spustíte výše uvedené příkazy, musíte zadat typ šifrování pro položky klíčové tabulky. Ujistěte se, že jste zvolili ten správný pro vaše prostředí.
Zkontrolujte položky keytab
Po aktualizaci klíčového tabulkového souboru byste teď měli vidět položky v tomto souboru pro kvno 3 (nové) a také kvno 2 (staré) pro stejný účet sqluser@CONTOSO.COM a příslušné SPN. Spuštěním následujícího příkazu klist můžete zkontrolovat položky v tabulce klíčů:
klist -kte /var/opt/mssql/secrets/mssql.keytab
Změna hesla účtu ve službě služba Active Directory
Posledním krokem je aktualizace hesla network.privilegedadaccount nebo účtu, který vlastní Názvy hlavních služeb SQL Serveru ve službě Windows služba Active Directory. V předchozím scénáři musíme aktualizovat heslo pro sqluser@CONTOSO.COM ve službě služba Active Directory. Změňte heslo na <newpassword>, které jste zadali v kroku 3 v předchozí části. Ověřování služby služba Active Directory by mělo fungovat i bez nutnosti restartování služby SQL Server.
Související obsah
- kurz : Použití nástroje adutil ke konfiguraci ověřování active directory s SQL Serverem v Linuxu
- Kurz : Konfigurace ověřování služba Active Directory s SQL Serverem v kontejnerech Linuxu
- Pochopte ověřování služba Active Directory pro SQL Server na Linuxu a v kontejnerech
- řešení potíží s ověřováním služba Active Directory pro SQL Server v Linuxu a kontejnerech