Dienstprinzipalnamen (SPN) in Clientverbindungen (OLE DB)

In diesem Thema werden OLE DB-Eigenschaften und Memberfunktionen beschrieben, die Dienstprinzipalnamen (SPN) in Clientanwendungen unterstützen. Weitere Informationen über SPN in Clientanwendungen finden Sie unter Unterstützung von Dienstprinzipalnamen (SPN) in Clientverbindungen. Ein Beispiel hierzu finden Sie unter Integrierte Kerberos-Authentifizierung (OLE DB).

Schlüsselwörter für Anbieter-Initialisierungszeichenfolgen

Die folgenden Schlüsselwörter für Anbieter-Initialisierungszeichenfolgen unterstützen SPNs in OLE DB-Anwendungen. In der folgenden Tabelle werden für die Anbieterzeichenfolge IDBInitialize::Initialize die Werte aus der Schlüsselwortspalte verwendet. Beim Herstellen einer Verbindung mit ADO oder IDataInitialize::GetDataSource werden die Werte aus der Beschreibungsspalte in Initialisierungszeichenfolgen verwendet.

Schlüsselwort

Beschreibung

Wert

ServerSPN

Server-SPN

Der SPN für den Server. Der Standardwert ist eine leere Zeichenfolge und bewirkt, dass SQL Server Native Client den vorgegebenen, vom Anbieter generierten SPN verwendet.

FailoverPartnerSPN

Failoverpartner-SPN

Der SPN für den Failoverpartner. Der Standardwert ist eine leere Zeichenfolge und bewirkt, dass SQL Server Native Client den vorgegebenen, vom Anbieter generierten SPN verwendet.

Eigenschaften zur Datenquelleninitialisierung

Die folgenden Eigenschaften in der DBPROPSET_SQLSERVERDBINIT-Eigenschaftengruppe ermöglichen es Anwendungen, SPNs anzugeben.

Name

Typ

Verwendung

SSPROP_INIT_SERVERSPN

VT_BSTR, Lese-/Schreibzugriff

Gibt den SPN für den Server an. Der Standardwert ist eine leere Zeichenfolge und bewirkt, dass SQL Server Native Client den vorgegebenen, vom Anbieter generierten SPN verwendet.

SSPROP_INIT_FAILOVERPARTNERSPN

VT_BSTR, Lese-/Schreibzugriff

Gibt den SPN für den Failoverpartner an. Der Standardwert ist eine leere Zeichenfolge und bewirkt, dass SQL Server Native Client den vorgegebenen, vom Anbieter generierten SPN verwendet.

Datenquelleneigenschaften

Die folgenden Eigenschaften in der DBPROPSET_SQLSERVERDATASOURCEINFO-Eigenschaftengruppe ermöglichen es Anwendungen, die Authentifizierungsmethode zu ermitteln.

Name

Typ

Verwendung

SSPROP_INTEGRATEDAUTHENTICATIONMETHOD

VT_BSTR, schreibgeschützt

Gibt die für die aktuelle Verbindung verwendete Authentifizierungsmethode zurück. An die Anwendung wird der Wert zurückgegeben, den Windows an SQL Server Native Client zurückgibt. Folgende Werte sind möglich:

  • "NTLM" wird zurückgegeben, wenn eine Verbindung mit der NTLM-Authentifizierung geöffnet wird.

  • "Kerberos" wird zurückgegeben, wenn eine Verbindung mit der Kerberos-Authentifizierung geöffnet wird.

Wenn eine Verbindung geöffnet wurde und die Authentifizierungsmethode nicht bestimmt werden kann, wird "VT_EMPTY" zurückgegeben.

Diese Eigenschaft kann nur gelesen werden, wenn eine Datenquelle initialisiert wurde. Wenn Sie versuchen, die Eigenschaft vor der Initialisierung einer Datenquelle zu lesen, gibt IDBProperties::GetProperies DB_S_ERRORSOCCURRED bzw. DB_E_ERRORSOCCURRED zurück, und DBPROPSTATUS_NOTSUPPORTED wird für diese Eigenschaft in DBPROPSET_PROPERTIESINERROR festgelegt. Dieses Verhalten entspricht der OLE DB-Kernspezifikation.

SSPROP_MUTUALLYAUTHENICATED

VT_BOOL, schreibgeschützt

Gibt VARIANT_TRUE zurück, wenn die Server in der Verbindung gegenseitig authentifiziert wurden; andernfalls wird VARIANT_FALSE zurückgegeben.

Diese Eigenschaft kann nur gelesen werden, wenn eine Datenquelle initialisiert wurde. Wenn Sie versuchen, die Eigenschaft vor der Initialisierung einer Datenquelle zu lesen, gibt IDBProperties::GetProperies DB_S_ERRORSOCCURRED bzw. DB_E_ERRORSOCCURRED zurück, und DBPROPSTATUS_NOTSUPPORTED wird für diese Eigenschaft in DBPROPSET_PROPERTIESINERROR festgelegt. Dieses Verhalten entspricht der OLE DB-Kernspezifikation.

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

OLE DB-API-Unterstützung für SPNs

In der folgenden Tabelle werden die OLE DB-Memberfunktionen beschrieben, die SPNs in Clientverbindungen unterstützen:

Memberfunktion

Beschreibung

IDataInitialize::GetDataSource

pwszInitializationString kann die neuen Schlüsselwörter ServerSPN und FailoverPartnerSPN enthalten.

IDataInitialize::GetInitializationString

Wenn SSPROP_INIT_SERVERSPN und SSPROP_INIT_FAILOVERPARTNERSPN Nichtstandardwerte aufweisen, werden sie durch ppwszInitString als Schlüsselwortwerte für ServerSPN und FailoverPartnerSPN in die Initialisierungszeichenfolge aufgenommen. Andernfalls sind diese Schlüsselwörter nicht in der Initialisierungszeichenfolge enthalten.

IDBInitialize::Initialize

Sind durch die Einstellung von DBPROP_INIT_PROMPT in den Eigenschaften zur Datenquelleninitialisierung Aufforderungen aktiviert, wird das OLE DB-Anmeldedialogfeld angezeigt. Damit können SPNs sowohl für den Prinzipalserver als auch für seinen Failoverpartner eingegeben werden.

Sofern festgelegt, erkennt die Anbieterzeichenfolge in DPPROP_INIT_PROVIDERSTRING die neuen Schlüsselwörter ServerSPN und FailoverPartnerSPN und verwendet ihre Werte (sofern vorhanden) zur Initialisierung von SSPROP_INIT_SERVER_SPN und SSPROP_INIT_FAILOVER_PARTNER_SPN.

IDBProperties::SetProperties kann aufgerufen werden, um vor dem Aufruf von IDBInitialize::Initialize die Eigenschaften SSPROP_INIT_SERVER_SPN und SSPROP_INIT_FAILOVER_PARTNER_SPN festzulegen. Dies ist eine Alternative zum Verwenden einer Anbieterzeichenfolge.

Wird eine Eigenschaft mehrfach festgelegt, hat ein programmgesteuert festgelegter Wert Vorrang vor einem in der Anbieterzeichenfolge festgelegten Wert. Ein in einer Initialisierungszeichenfolge festgelegter Wert hat Vorrang vor einem in einem Anmeldedialogfeld festgelegten Wert.

Kommt ein Schlüsselwort mehrfach in der Anbieterzeichenfolge vor, hat der an erster Stelle stehende Wert Vorrang.

IDBProperties::GetProperties

IDBProperties::GetProperties kann aufgerufen werden, um die Werte der neuen Eigenschaften zur Datenquelleninitialisierung SSPROP_INIT_SERVERSPN und SSPROP_INIT_FAILOVERPARTNERSPN sowie der neuen Datenquelleneigenschaften SSPROP_AUTHENTICATIONMETHOD und SSPROP_MUTUALLYAUTHENTICATED abzurufen.

IDBProperties::GetPropertyInfo

IdbProperties::GetPropertyInfo beinhaltet die neuen Eigenschaften zur Datenquelleninitialisierung SSPROP_INIT_SERVERSPN und SSPROP_INIT_FAILOVERPARTNERSPN oder die neuen Datenquelleneigenschaften SSPROP_AUTHENTICATION_METHOD und SSPROP_MUTUALLYAUTHENTICATED.

IDBProperties::SetProperties

IDBProperties::SetProperties kann aufgerufen werden, um die Werte der neuen Eigenschaften zur Datenquelleninitialisierung SSPROP_INITSERVERSPN und SSPROP_INIT_FAILOVERPARTNERSPN festzulegen.

Diese Eigenschaften können zu einem beliebigen Zeitpunkt festgelegt werden. Ist die Datenquelle jedoch bereits geöffnet, wird der folgende Fehler zurückgegeben: DB_E_ERRORSOCCURRED, "Fehler bei einem aus mehreren Schritten bestehenden OLE DB-Vorgang. Prüfen Sie die einzelnen OLE DB-Statuswerte, falls vorhanden. Daten wurden nicht verarbeitet."

Siehe auch

Konzepte

SQL Server Native Client (OLE DB)