Szolgáltatásfő nevek (SPN-ek) az ügyfélkapcsolatokban (ODBC)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Important

SQL Server Native Client (SNAC) nem kerül szállításra a következőkkel:

  • SQL Server 2022 (16.x) és újabb verziók
  • AZ SQL Server Management Studio 19- és újabb verziói

Az SQL Server natív ügyfele (SQLNCLI vagy SQLNCLI11) és az örökölt Microsoft OLE DB Provider for SQL Server (SQLOLEDB) nem ajánlott az új alkalmazásfejlesztéshez.

Új projektek esetén használja az alábbi illesztőprogramok egyikét:

Az SQL Server adatbázismotor (2012–2019) egyik összetevőjeként szállított SQLNCLI esetében tekintse meg az alábbi támogatási életciklus-kivételt.

Ez a téma az ODBC attribútumokat és függvényeket írja le, amelyek támogatják a szolgáltatásfőneveket (SPN-eket) kliensalkalmazásokban. További információért az SPN-ekről kliensalkalmazásokban lásd: Service Principal Name (SPN) Support in Client Connections és Get Mutual Kerberos Authentication.

Kapcsolati karakterlánc kulcsszavak

Az alábbi kapcsolati karakterlánc kulcsszavak lehetővé teszik az ügyfélalkalmazások számára, hogy SPN-t adjanak meg.

Keyword Value
ServerSPN A kiszolgáló SPN-je. Az alapértelmezett érték egy üres string, ami miatt az SQL Server Native Client az alapértelmezett, illesztőprogram-generált SPN-t használja.
FeladatátvételpartnerSPN A feladatátvevő partner SPN-je. Az alapértelmezett érték egy üres string, ami miatt az SQL Server Native Client az alapértelmezett, illesztőprogram-generált SPN-t használja.

Kapcsolati attribútumok

Az alábbi kapcsolati attribútumok lehetővé teszik az ügyfélalkalmazások számára, hogy megadjanak SPN-t és lekérdezést a hitelesítési módszerre.

Név Típus Usage
SQL_COPT_SS_SERVER_SPN

SQL_COPT_SS_FAILOVER_PARTNER_SPN
SQLTCHAR, olvas/ír A kiszolgáló egyszerű szolgáltatásnevét adja meg. Az alapértelmezett érték egy üres string, ami miatt az SQL Server Native Client az alapértelmezett, illesztőprogram-generált SPN-t használja.

Ez az attribútum csak programozott beállítás vagy a kapcsolat megnyitása után lehet lekérdezni. Ha megpróbálják lekérdezni ezt az attribútumot egy nem nyitott kapcsolaton, és az attribútumot nem állították be programozóan, SQL_ERROR visszatér, és diagnosztikai rekordot rögzítenek SQLState 08003-mal, valamint az "Connection not open" üzenetet.

Ha megpróbálják beállítani ezt az attribútumot egy kapcsolat nyitvatartása idején, SQL_ERROR visszakerül, és diagnosztikai rekordot rögzítenek SQLState HY011-gyel, valamint az "Művelet érvényes most alkalommal" üzenetet.
SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD SQLTCHAR, csak olvasható A kapcsolathoz használt hitelesítési módszert adja vissza. Az alkalmazáshoz visszaadott érték az érték, amelyet a Windows visszaad az SQL Server Native Client-hez. A lehetséges értékek a következők:

"NTLM", amelyet a rendszer akkor ad vissza, amikor NTLM-hitelesítéssel nyit meg egy kapcsolatot.

"Kerberos", amely akkor lesz visszaadva, ha a kapcsolat Kerberos-hitelesítéssel van megnyitva.



Ez az attribútum csak olyan nyílt kapcsolat esetén olvasható, amely Windows hitelesítést használ. Ha megpróbálják elolvasni a kapcsolat megnyitása előtt, SQL_ERROR visszakerül, és hibát regisztrálnak az SQLState 08003-mal és a "Connection not open" üzenet.

Ha ezt az attribútumot olyan kapcsolaton kérdezik, amely nem használta Windows hitelesítést, SQL_ERROR jelenik meg, és hibát regisztrálnak az SQLState HY092-vel, valamint az üzenet: "Invalid attribútum/opcióazonosító (SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD csak megbízható kapcsolatok esetén elérhető)".

Ha a hitelesítési módszer nem határozható meg, visszaküldik SQL_ERROR, és hibát rögzítenek az SQLState HY000-vel, valamint a "General error" üzenetet.
SQL_COPT_SS_MUTUALLY_AUTHENTICATED SQLSMALLINT, csak olvasható Visszaadja SQL_TRUE, ha a kapcsolatban lévő szerver kölcsönösen hitelesített volt; egyébként SQL_FALSE visszatér.

Ez az attribútum csak nyílt kapcsolat esetén olvasható. Ha megpróbálják elolvasni a kapcsolat megnyitása előtt, SQL_ERROR visszakerül, és hibát regisztrálnak az SQLState 08003-mal és a "Connection not open" üzenet.

Ha ezt az attribútumot olyan kapcsolatra kérik, amely nem használta Windows hitelesítést, SQL_FALSE visszakerül.

ODBC funkció támogatása SPN-ek meghatározásához

Az alábbi ODBC funkciók támogatják az ügyfélalkalmazásokat és SPN-eket: