Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
ODBC-stuurprogramma downloaden
Het Microsoft ODBC-stuurprogramma voor SQL Server in Linux en macOS ondersteunt verbindingen die gebruikmaken van geïntegreerde Kerberos-verificatie. Het ondersteunt het MIT Kerberos Key Distribution Center (KDC) en werkt met generic Security Services Application Program Interface (GSSAPI) en Kerberos v5-bibliotheken.
Vanaf versie 17.6 ondersteunt het stuurprogramma ook geïntegreerde verificatie met Microsoft Entra ID (voorheen Azure Active Directory) met behulp van een federatief account, ondanks de beperkingen van de systeembibliotheek. Zie Microsoft Entra-id gebruiken voor meer informatie.
Geïntegreerde verificatie gebruiken om verbinding te maken met SQL Server vanuit een ODBC-toepassing
U kunt geïntegreerde Kerberos-verificatie inschakelen door Trusted_Connection=ja op te geven in de verbindingsreeks van SQLDriverConnect of SQLConnect. Voorbeeld:
Driver='ODBC Driver 18 for SQL Server';Server=your_server;Encrypt=yes;Trusted_Connection=yes
Wanneer u verbinding maakt met een DSN, kunt u ook Trusted_Connection=ja toevoegen aan de DSN-vermelding in odbc.ini.
De -E optie van sqlcmd en de -T optie van bcp kan ook worden gebruikt om geïntegreerde verificatie op te geven. Zie Verbinding maken met sqlcmd en Verbinding maken met bcp voor meer informatie.
Zorg ervoor dat de client-principal die verbinding gaat maken met SQL Server al is geverifieerd met de Kerberos KDC.
ServerSPN en FailoverPartnerSPN worden niet ondersteund.
Een Linux- of macOS ODBC-stuurprogrammatoepassing implementeren die is ontworpen voor uitvoeren als een service
Een systeembeheerder kan een toepassing implementeren om uit te voeren als een service die gebruikmaakt van Kerberos-verificatie om verbinding te maken met SQL Server.
Eerst moet u Kerberos op de client configureren en vervolgens ervoor zorgen dat de toepassing de Kerberos-referentie van de standaard-principal kan gebruiken.
Zorg ervoor dat u kinit of PAM (Pluggable Authentication Module) gebruikt om de TGT op te halen en op te cachen voor de principal die door de verbinding wordt gebruikt, via een van de volgende methoden:
Voer
kinituit, met gebruik van een principal-naam en wachtwoord.Voer
kinituit en geef een principal-naam en de locatie van een keytab-bestand op dat de doorktutilgemaakte sleutel van de principal bevat.Zorg ervoor dat de aanmelding bij het systeem is uitgevoerd met behulp van de Kerberos PAM (Pluggable Authentication Module).
Wanneer een toepassing wordt uitgevoerd als een service, omdat Kerberos-referenties standaard verlopen, vernieuwt u de referenties om ervoor te zorgen dat de service beschikbaar blijft. Het ODBC-stuurprogramma vernieuwt de referenties zelf niet; zorg ervoor dat er een cron taak of script is dat periodiek wordt uitgevoerd om de referenties te vernieuwen voordat ze verlopen. Als u het wachtwoord voor elke verlenging wilt voorkomen, kunt u een keytab-bestand gebruiken.
Kerberos-configuratie en -gebruik biedt informatie over manieren om Kerberize-services in Linux te gebruiken.
Het bijhouden van toegang tot een database
Een databasebeheerder kan een audittrail voor toegang tot een database maken wanneer u systeemaccounts gebruikt om toegang te krijgen tot SQL Server met behulp van geïntegreerde verificatie.
Aanmelden bij SQL Server maakt gebruik van het systeemaccount en er is geen functionaliteit in Linux om beveiligingscontext te imiteren. Daarom is er meer vereist om de gebruiker te bepalen.
Als u activiteiten in SQL Server wilt controleren namens andere gebruikers dan het systeemaccount, moet de toepassing Transact-SQL EXECUTE AS gebruiken.
Om de prestaties van toepassingen te verbeteren, kan een toepassing gebruikmaken van groepsgewijze verbindingen met geïntegreerde verificatie en controle. Door het combineren van groepsgewijze verbindingen, geïntegreerde verificatie en controle ontstaat echter een beveiligingsrisico omdat de unixODBC-stuurprogrammabeheerder verschillende gebruikers toestaat poolverbindingen opnieuw te gebruiken. Zie ODBC-verbindingspooling voor meer informatie.
Voordat een toepassing opnieuw wordt gebruikt, moeten poolverbindingen worden gereset door sp_reset_connection uit te voeren.
Active Directory gebruiken om gebruikersidentiteiten te beheren
Een toepassingssysteembeheerder hoeft geen afzonderlijke sets aanmeldingsreferenties voor SQL Server te beheren. Het is mogelijk om Active Directory te configureren als een KDC (Key Distribution Center) voor geïntegreerde verificatie. Zie Microsoft Kerberos voor meer informatie.
Gekoppelde server en gedistribueerde query's gebruiken
Ontwikkelaars kunnen een toepassing implementeren die gebruikmaakt van een gekoppelde server of gedistribueerde query's zonder een databasebeheerder die afzonderlijke sets MET SQL-referenties onderhoudt. In dit geval moet een ontwikkelaar een toepassing configureren voor het gebruik van geïntegreerde verificatie:
Gebruiker meldt zich aan bij een clientcomputer en verifieert zich bij de toepassingsserver.
De toepassingsserver wordt geverifieerd als een andere database en maakt verbinding met SQL Server.
SQL Server authenticeert zich als databasegebruiker voor een andere database (SQL Server).
Nadat geïntegreerde verificatie is geconfigureerd, worden inloggegevens doorgegeven aan de gekoppelde server.
Geïntegreerde verificatie en sqlcmd
Als u toegang wilt krijgen tot SQL Server met geïntegreerde verificatie, gebruikt u de -E optie .sqlcmd Zorg ervoor dat het account dat sqlcmd draait, gekoppeld is aan de standaard-Kerberos-client-principal.
Geïntegreerde verificatie en bcp
Als u toegang wilt krijgen tot SQL Server met geïntegreerde verificatie, gebruikt u de -T optie .bcp Zorg ervoor dat het account waarmee bcp wordt uitgevoerd, is gekoppeld aan de standaard Kerberos-client-principal.
Het is een fout om -T met de -U-optie of -P-optie te gebruiken.
Ondersteunde syntaxis voor een SPN geregistreerd door SQL Server
De syntaxis die SPN's in de verbindingsreeks of verbindingskenmerken gebruiken, is als volgt:
| Syntaxis | Description |
|---|---|
| MSSQLSvc/fqdn:port | De door de provider gegenereerde standaard-SPN wanneer TCP wordt gebruikt. poort is een TCP-poortnummer. fqdn is een volledig gekwalificeerde domeinnaam. |
Een Linux- of macOS-computer verifiëren met Active Directory
Als u Kerberos wilt configureren, voert u gegevens in het krb5.conf bestand in.
krb5.conf is in /etc/ , maar u kunt verwijzen naar een ander bestand met behulp van de syntaxis bijvoorbeeld export KRB5_CONFIG=/home/dbapp/etc/krb5.conf. Hier volgt een voorbeeldbestand krb5.conf :
[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
Als uw Linux- of macOS-computer is geconfigureerd voor het gebruik van het Dynamic Host Configuration Protocol (DHCP) met een Windows DHCP-server die de DNS-servers levert die moeten worden gebruikt, kunt u dns_lookup_kdc=true gebruiken. Nu kunt u Kerberos gebruiken om u aan te melden bij uw domein door de opdracht kinit alias@YYYY.CORP.CONTOSO.COMuit te geven. Parameters die worden doorgegeven aan kinit zijn hoofdlettergevoelig en de SQL Server-computer die is geconfigureerd om zich in het domein te bevinden, moet die gebruiker alias@YYYY.CORP.CONTOSO.COM hebben toegevoegd voor aanmelding. U kunt nu vertrouwde verbindingen gebruiken (Trusted_Connection=JA in een verbindingsreeks, bcp -T of sqlcmd -E).
De tijd op de Linux- of macOS-computer en de tijd op het Kerberos Key Distribution Center (KDC) moeten nauwkeurig op elkaar zijn afgestemd. Zorg ervoor dat de systeemtijd juist is ingesteld, bijvoorbeeld met behulp van het Network Time Protocol (NTP).
Als Kerberos-verificatie mislukt, gebruikt het ODBC-stuurprogramma in Linux of macOS geen NTLM-verificatie.
Zie Linux-clients verifiëren met Active Directory voor meer informatie over het verifiëren van Linux- of macOS-computers met Active Directory. Zie de MIT Kerberos-documentatie voor meer informatie over het configureren van Kerberos.