Freigeben über


Dienstprinzipalnamen (SPNs) in Client-Verbindungen (ODBC)

In diesem Thema werden ODBC-Attribute und -Funktionen beschrieben, die Dienstprinzipalnamen (SPNs) in Clientanwendungen unterstützen. Weitere Informationen zu SPNs in Clientanwendungen finden Sie unter Service Principal Name (SPN)-Unterstützung in Clientverbindungen und Abrufen der gegenseitigen Kerberos-Authentifizierung.

Schlüsselwörter für Verbindungszeichenfolgen

Mit den folgenden Verbindungszeichenfolgenstichwörtern können Clientanwendungen einen SPN angeben.

Schlüsselwort Wert
ServerSPN Der SPN für den Server. Der Standardwert ist eine leere Zeichenfolge, wodurch SQL Server Native Client den standardmäßigen, vom Treiber generierten SPN verwendet.
FailoverPartnerSPN Der SPN für den Failoverpartner. Der Standardwert ist eine leere Zeichenfolge, wodurch SQL Server Native Client den standardmäßigen, vom Treiber generierten SPN verwendet.

Verbindungsattribute

Mit den folgenden Verbindungsattributen können Clientanwendungen einen SPN angeben und die Authentifizierungsmethode abfragen.

Name Typ Verwendung
SQL_COPT_SS_SERVER_SPN

SQL_COPT_SS_FAILOVER_PARTNER_SPN
SQLTCHAR, Lese-/Schreibzugriff Gibt den SPN für den Server an. Der Standardwert ist eine leere Zeichenfolge, wodurch SQL Server Native Client den standardmäßigen, vom Treiber generierten SPN verwendet.

Dieses Attribut kann erst abgefragt werden, nachdem es programmgesteuert festgelegt wurde oder nachdem eine Verbindung geöffnet wurde. Wenn versucht wird, dieses Attribut für eine verbindung abzufragen, die nicht geöffnet ist und das Attribut nicht programmgesteuert festgelegt wurde, wird SQL_ERROR zurückgegeben, und ein Diagnosedatensatz wird mit SQLState 08003 protokolliert und die Meldung "Verbindung nicht geöffnet".

Wenn versucht wird, dieses Attribut festzulegen, wenn eine Verbindung geöffnet ist, wird SQL_ERROR zurückgegeben, und ein Diagnosedatensatz wird mit SQLState HY011 protokolliert und die Meldung "Vorgang zurzeit ungültig".
SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD SQLTCHAR, schreibgeschützt Gibt die für die aktuelle Verbindung verwendete Authentifizierungsmethode zurück. Der an die Anwendung zurückgegebene Wert ist der Wert, den Windows an SQL Server Native Client zurückgibt. Mögliche Werte:

- "NTLM", das zurückgegeben wird, wenn eine Verbindung mithilfe der NTLM-Authentifizierung geöffnet wird.
– "Kerberos", das zurückgegeben wird, wenn eine Verbindung mithilfe der Kerberos-Authentifizierung geöffnet wird.

Dieses Attribut kann nur für eine geöffnete Verbindung gelesen werden, die die Windows-Authentifizierung verwendet hat. Wenn versucht wird, sie vor dem Öffnen einer Verbindung zu lesen, wird SQL_ERROR zurückgegeben, und ein Fehler wird mit SQLState 08003 protokolliert und die Meldung "Verbindung nicht geöffnet".

Wenn dieses Attribut für eine Verbindung abgefragt wird, die keine Windows-Authentifizierung verwendet hat, wird SQL_ERROR zurückgegeben, und ein Fehler wird mit SQLState HY092 protokolliert und die Meldung "Ungültiger Attribut-/Optionsbezeichner (SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD ist nur für vertrauenswürdige Verbindungen verfügbar)" protokolliert.

Wenn die Authentifizierungsmethode nicht bestimmt werden kann, wird SQL_ERROR zurückgegeben, und ein Fehler wird mit SQLState HY000 und der Meldung "Allgemeiner Fehler" protokolliert.
SQL_COPT_SS_MUTUALLY_AUTHENTICATED SQLSMALLINT, schreibgeschützt Gibt SQL_TRUE zurück, wenn sich der Server in der Verbindung gegenseitig authentifiziert hat; andernfalls wird SQL_FALSE zurückgegeben.

Dieses Attribut kann nur für eine geöffnete Verbindung gelesen werden. Wenn versucht wird, sie vor dem Öffnen einer Verbindung zu lesen, wird SQL_ERROR zurückgegeben, und ein Fehler wird mit SQLState 08003 protokolliert und die Meldung "Verbindung nicht geöffnet".

Wenn dieses Attribut für eine Verbindung abgefragt wird, die keine Windows-Authentifizierung verwendet hat, wird SQL_FALSE zurückgegeben.

ODBC-Funktionsunterstützung für die Angabe von SPNs

Die folgenden ODBC-Funktionen unterstützen Clientanwendungen und SPNs:

Siehe auch

SQL Server Native Client (ODBC)