Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Microsoft ODBC-drivrutinen för SQL Server på Linux och macOS stöder anslutningar som använder Kerberos-integrerad autentisering. Den stöder MIT Kerberos Key Distribution Center (KDC) och fungerar med GSSAPI-bibliotek (Generic Security Services Application Program Interface) och Kerberos v5.
Från och med version 17.6 stöder drivrutinen även integrerad autentisering med Microsoft Entra-ID (tidigare Azure Active Directory) med hjälp av ett federerat konto, trots systembiblioteksbegränsningar. Mer information finns i Använda Microsoft Entra-ID .
Använda integrerad autentisering för att ansluta till SQL Server från ett ODBC-program
Du kan aktivera Kerberos-integrerad autentisering genom att ange Trusted_Connection=ja i anslutningssträngen för SQLDriverConnect eller SQLConnect. Till exempel:
Driver='ODBC Driver 18 for SQL Server';Server=your_server;Encrypt=yes;Trusted_Connection=yes
När du ansluter med ett DSN kan du också lägga till Trusted_Connection=ja till DSN-posten i odbc.ini.
Alternativet -Esqlcmd och -T alternativet bcp för kan också användas för att ange integrerad autentisering. Mer information finns i Ansluta med sqlcmd och Ansluta med bcp .
Kontrollera att klientobjektet som ska ansluta till SQL Server redan är autentiserat med Kerberos KDC.
ServerSPN och FailoverPartnerSPN stöds inte.
Distribuera ett ODBC-drivrutinsprogram för Linux eller macOS som är utformat för att köras som en tjänst
En systemadministratör kan distribuera ett program som ska köras som en tjänst som använder Kerberos-autentisering för att ansluta till SQL Server.
Du måste först konfigurera Kerberos på klienten och sedan se till att programmet kan använda Kerberos-autentiseringsuppgifterna för standardobjektet.
Se till att du använder kinit eller PAM (Pluggable Authentication Module) för att hämta och cachelagrar TGT för det huvudnamn som anslutningen använder, via någon av följande metoder:
Kör
kinitoch skicka in ett huvudnamn och lösenord.Kör
kinitoch ange ett principalnamn och platsen för en keytab-fil som innehåller principalens nyckel skapad avktutil.Kontrollera att inloggningen till systemet gjordes med kerberos PAM (pluggbar autentiseringsmodul).
När ett program körs som en tjänst, eftersom Kerberos-autentiseringsuppgifterna upphör att gälla avsiktligt, förnyar du autentiseringsuppgifterna för att säkerställa fortsatt tjänsttillgänglighet. ODBC-drivrutinen förnyar inte själva autentiseringsuppgifterna. se till att det finns ett cron jobb eller skript som regelbundet körs för att förnya autentiseringsuppgifterna innan de upphör att gälla. Om du vill undvika att kräva lösenordet för varje förnyelse kan du använda en nyckelfliksfil.
Kerberos-konfiguration och användning innehåller information om sätt att Kerberisera tjänster på Linux.
Spåra åtkomst till en databas
En databasadministratör kan skapa en spårningslogg för åtkomst till en databas när systemkonton används för att komma åt SQL Server med integrerad autentisering.
När du loggar in på SQL Server används systemkontot och det finns inga funktioner i Linux för att personifiera säkerhetskontext. Därför krävs mer för att fastställa användaren.
Om du vill granska aktiviteter i SQL Server för andra användare än systemkontot måste programmet använda Transact-SQL EXECUTE AS.
För att förbättra programmets prestanda kan ett program använda anslutningspooler med integrerad autentisering och granskning. Att kombinera anslutningspooler, integrerad autentisering och granskning skapar dock en säkerhetsrisk eftersom unixODBC-drivrutinshanteraren tillåter olika användare att återanvända poolanslutningar. Mer information finns i ODBC-anslutningspooler.
Innan ett program återanvänds måste det återställa poolanslutningar genom att köra sp_reset_connection.
Använda Active Directory för att hantera användaridentiteter
En programsystemadministratör behöver inte hantera separata uppsättningar med inloggningsuppgifter för SQL Server. Det är möjligt att konfigurera Active Directory som ett nyckeldistributionscenter (KDC) för integrerad autentisering. Mer information finns i Microsoft Kerberos .
Använda länkad server och distribuerade frågor
Utvecklare kan distribuera ett program som använder en länkad server eller distribuerade frågor utan en databasadministratör som underhåller separata uppsättningar med SQL-autentiseringsuppgifter. I det här fallet måste en utvecklare konfigurera ett program för att använda integrerad autentisering:
Användaren loggar in på en klientdator och autentiserar till programservern.
Programservern autentiseras som en annan databas och ansluter till SQL Server.
SQL Server autentiserar som databasanvändare till en annan databas (SQL Server.
När integrerad autentisering har konfigurerats skickas autentiseringsuppgifterna till den länkade servern.
Integrerad autentisering och sqlcmd
Om du vill komma åt SQL Server med integrerad autentisering använder du alternativet -Esqlcmd. Se till att det konto som kör sqlcmd är associerat med standard Kerberos-klienthuvudnamn.
Integrerad autentisering och bcp
Om du vill komma åt SQL Server med integrerad autentisering använder du alternativet -Tbcp. Se till att det konto som kör bcp är associerat med standardprincipalen för Kerberos-klienten.
Det är ett fel att använda -T med -U alternativet eller -P .
Syntax som stöds för ett SPN som registrerats av SQL Server
Syntaxen som SPN använder i anslutningssträngen eller anslutningsattributen är följande:
| Syntax | Description |
|---|---|
| MSSQLSvc/fqdn:port | Det providergenererade standard-SPN när TCP används. port är ett TCP-portnummer. fqdn är ett fullständigt domännamn. |
Autentisera en Linux- eller macOS-dator med Active Directory
Om du vill konfigurera Kerberos anger du data i krb5.conf filen.
krb5.conf finns i /etc/ men du kan referera till en annan fil med hjälp av syntaxen, t.ex. export KRB5_CONFIG=/home/dbapp/etc/krb5.conf. Följande är en exempelfil 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
Om din Linux- eller macOS-dator har konfigurerats för att använda DHCP (Dynamic Host Configuration Protocol) med en Windows DHCP-server som tillhandahåller DNS-servrarna kan du använda dns_lookup_kdc=true. Nu kan du använda Kerberos för att logga in på din domän genom att utfärda kommandot kinit alias@YYYY.CORP.CONTOSO.COM. Parametrar som skickas till kinit är skiftlägeskänsliga och SQL Server-datorn som är konfigurerad för att finnas i domänen måste ha användaren alias@YYYY.CORP.CONTOSO.COM tillagd för inloggning. Nu kan du använda betrodda anslutningar (Trusted_Connection=JA i en anslutningssträng, bcp -T eller sqlcmd -E).
Tiden på Linux- eller macOS-datorn och tiden på Kerberos Key Distribution Center (KDC) måste stämma överens. Kontrollera att systemtiden är korrekt inställd, t.ex. med hjälp av NTP (Network Time Protocol).
Om Kerberos-autentiseringen misslyckas använder ODBC-drivrutinen i Linux eller macOS inte NTLM-autentisering.
Mer information om hur du autentiserar Linux- eller macOS-datorer med Active Directory finns i Autentisera Linux-klienter med Active Directory. Mer information om hur du konfigurerar Kerberos finns i MIT Kerberos-dokumentationen.