Sdílet prostřednictvím


Použití integrovaného ověřování

Stáhnout ovladač ODBC

Ovladač Microsoft ODBC pro SQL Server v Linuxu a macOS podporuje připojení, která používají integrované ověřování Kerberos. Podporuje KDC (Mit Kerberos Key Distribution Center) a pracuje s knihovnami GSSAPI (Generic Security Services Application Program Interface) a Kerberos v5.

Od verze 17.6 ovladač podporuje také integrované ověřování pomocí Microsoft Entra ID (dříve Azure Active Directory) s využitím federovaného účtu, a to i přes omezení systémových knihoven. Další informace najdete v tématu Použití Microsoft Entra ID .

Použití integrovaného ověřování pro připojení k SQL Serveru z aplikace ODBC

Integrované ověřování Kerberos můžete povolit zadáním Trusted_Connection=ano v připojovacím řetězci sqlDriverConnect nebo SQLConnect. Například:

Driver='ODBC Driver 18 for SQL Server';Server=your_server;Encrypt=yes;Trusted_Connection=yes  

Při připojování pomocí DSN můžete také přidat Trusted_Connection=ano do položky DSN v odbc.ini.

Možnost -E u sqlcmd a možnost -T u bcp lze také použít k určení integrovaného ověřování. Další informace najdete v tématu Připojení pomocí sqlcmd a Připojení pomocí bcp.

Ujistěte se, že klientský principál, který se bude připojovat k SQL Serveru, je již ověřený u KDC pomocí protokolu Kerberos.

ServerSPN a FailoverPartnerSPN se nepodporují.

Nasazení aplikace ovladače ODBC pro Linux nebo macOS navržená tak, aby běžela jako služba

Správce systému může nasadit aplikaci, která se spustí jako služba, která k připojení k SQL Serveru používá ověřování kerberos.

Nejprve je potřeba nakonfigurovat protokol Kerberos na klientovi a pak zajistit, aby aplikace používala přihlašovací údaje Kerberos výchozího objektu zabezpečení.

Ujistěte se, že používáte kinit modul ověřování PAM (Pluggable Authentication Module) k získání a uložení TGT do mezipaměti pro objekt zabezpečení, který připojení používá, pomocí jedné z následujících metod:

  • Spusťte příkaz kinit, předáte hlavní název a heslo.

  • Spusťte kinit, předáním hlavního názvu a umístění souboru keytab, který obsahuje klíč principálu vytvořený ktutil.

  • Ujistěte se, že se přihlášení k systému provedlo pomocí modulu kerberos PAM (Pluggable Authentication Module).

Když aplikace běží jako služba, protože platnost přihlašovacích údajů Kerberos vyprší záměrně, obnovte tyto přihlašovací údaje, abyste zajistili pokračující dostupnost služby. Ovladač ODBC neprodlužuje samotné přihlašovací údaje; ujistěte se, že existuje cron úloha nebo skript, který se pravidelně spouští za účelem obnovení přihlašovacích údajů před vypršením jejich platnosti. Abyste se vyhnuli vyžadování hesla pro každé prodlužování platnosti, můžete použít soubor keytab.

Konfigurace protokolu Kerberos a použití poskytují podrobné informace o způsobech použití služeb Kerberize v Linuxu.

Sledování přístupu k databázi

Správce databáze může vytvořit záznam auditu přístupu k databázi při použití systémových účtů pro přístup k SQL Serveru pomocí integrovaného ověřování.

Přihlášení k SQL Serveru používá systémový účet a v Linuxu neexistuje žádná funkce pro zosobnění kontextu zabezpečení. Proto je k určení uživatele potřeba více.

Pokud chcete auditovat aktivity v SQL Serveru jménem jiných uživatelů než systémový účet, musí aplikace používat Transact-SQL EXECUTE AS.

Ke zlepšení výkonu aplikace může aplikace používat sdružování připojení s integrovaným ověřováním a auditováním. Kombinace sdružování připojení, integrovaného ověřování a auditování však vytváří bezpečnostní riziko, protože správce ovladačů unixODBC umožňuje různým uživatelům opakovaně používat připojení ve fondu. Další informace najdete v tématu Sdružování připojení ODBC.

Před opětovným použitím musí aplikace resetovat připojení ve fondu spuštěním sp_reset_connection.

Použití služby Active Directory ke správě identit uživatelů

Správce systému aplikací nemusí spravovat samostatné sady přihlašovacích údajů pro SQL Server. Službu Active Directory je možné nakonfigurovat jako distribuční centrum klíčů (KDC) pro integrované ověřování. Další informace najdete v protokolu Microsoft Kerberos .

Použití odkazovaného serveru a distribuovaných dotazů

Vývojáři mohou nasadit aplikaci, která používá odkazovaný server nebo distribuované dotazy bez správce databáze, který udržuje samostatné sady přihlašovacích údajů SQL. V takovém případě musí vývojář nakonfigurovat aplikaci tak, aby používala integrované ověřování:

  • Uživatel se přihlásí k klientskému počítači a ověří se na aplikačním serveru.

  • Aplikační server se ověřuje jako jiná databáze a připojuje se k SQL Serveru.

  • SQL Server se ověřuje jako uživatel databáze v jiné databázi (SQL Server).

Po nakonfigurování integrovaného ověřování se přihlašovací údaje předají na odkazovaný server.

Integrované ověřování a sqlcmd

Pokud chcete získat přístup k SQL Serveru pomocí integrovaného ověřování, použijte -E možnost sqlcmd. Ujistěte se, že účet, který spouští sqlcmd, je přidružený k výchozímu klientskému hlavnímu objektu Kerberos.

Integrované ověřování a bcp

Pokud chcete získat přístup k SQL Serveru pomocí integrovaného ověřování, použijte -T možnost bcp. Ujistěte se, že účet, který běží bcp , je přidružený k výchozímu instančnímu objektu klienta Kerberos.

Jedná se o chybu používat -T s možností -U nebo -P.

Podporovaná syntaxe pro SPN zaregistrovaný SQL Serverem

Syntaxe, kterou SPN používají v připojovacím řetězci nebo atributech připojení, je následující:

Syntaxe Description
MSSQLSvc/fqdn:port Výchozí hlavní název služby (SPN) vygenerovaný poskytovatelem při použití protokolu TCP. port je číslo portu TCP. fqdn je plně kvalifikovaný název domény.

Ověřování počítače s Linuxem nebo macOS pomocí služby Active Directory

Pokud chcete nakonfigurovat Protokol Kerberos, zadejte do krb5.conf souboru data. krb5.conf je v /etc/ souboru, ale můžete odkazovat na jiný soubor pomocí syntaxe, například export KRB5_CONFIG=/home/dbapp/etc/krb5.conf. Následuje příklad krb5.conf souboru:

[libdefaults]  
default_realm = YYYY.CORP.CONTOSO.COM  
dns_lookup_realm = false  
dns_lookup_kdc = true  
ticket_lifetime = 24h  
forwardable = yes  
  
[domain_realm]  
.yyyy.corp.contoso.com = YYYY.CORP.CONTOSO.COM  
.zzzz.corp.contoso.com = ZZZZ.CORP.CONTOSO.COM  

Pokud je váš počítač s Linuxem nebo macOS nakonfigurovaný tak, aby používal protokol DHCP (Dynamic Host Configuration Protocol) se serverem DHCP systému Windows, který poskytuje servery DNS, můžete použít dns_lookup_kdc=true. Teď se můžete pomocí protokolu Kerberos přihlásit ke své doméně tak, že příkaz vydáte kinit alias@YYYY.CORP.CONTOSO.COM. Předané parametry kinit rozlišují velikost písmen a počítač s SQL Serverem, který je nakonfigurovaný tak, aby byl v doméně, musí mít uživatele alias@YYYY.CORP.CONTOSO.COM přidaného pro přihlášení. Teď můžete použít důvěryhodná připojení (Trusted_Connection=ANO v připojovacím řetězci, bcp -T nebo sqlcmd -E).

Čas na počítači s Linuxem nebo macOS a čas v Centru distribučních klíčů Kerberos (KDC) musí být shodný. Ujistěte se, že je systémový čas správně nastavený, například pomocí protokolu NTP (Network Time Protocol).

Pokud ověřování protokolem Kerberos selže, ovladač ODBC v Linuxu nebo macOS nepoužívá ověřování NTLM.

Další informace o ověřování počítačů s Linuxem nebo macOS pomocí služby Active Directory najdete v tématu Ověřování klientů Linuxu pomocí služby Active Directory. Další informace o konfiguraci protokolu Kerberos najdete v dokumentaci k protokolu MIT Kerberos.

Viz také

Pokyny pro programování

Poznámky k vydání

Použití Entra ID Microsoft