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 zu SPNs in Clientanwendungen finden Sie unter Unterstützung von Dienstprinzipalnamen (SPN) in Clientverbindungen. Ein Beispiel finden Sie unter integrierte Kerberos-Authentifizierung (OLE DB).

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

SchlüsselwortBeschreibungWert
ServerSPNServer-SPNDer 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.
FailoverPartnerSPNFailoverpartner-SPNDer 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.

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

NameTypVerwendung
SSPROP_INIT_SERVERSPNVT_BSTR, Lese-/SchreibzugriffGibt 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_FAILOVERPARTNERSPNVT_BSTR, Lese-/SchreibzugriffGibt 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.

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

NameTypVerwendung
SSPROP_INTEGRATEDAUTHENTICATIONMETHODVT_BSTR, schreibgeschütztGibt 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 zu lesen, bevor eine Datenquelle initialisiert wurde, IDBProperties::GetProperies zurück DB_S_ERRORSOCCURRED oder DB_E_ERRORSOCCURRED, nach Bedarf, und DBPROPSTATUS_NOTSUPPORTED wird für diese Eigenschaft in DBPROPSET_PROPERTIESINERROR festgelegt. Dieses Verhalten entspricht der OLE DB-Kernspezifikation.
SSPROP_MUTUALLYAUTHENICATEDVT_BOOL, schreibgeschütztGibt 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. Ist ein Versuch, die Eigenschaft zu lesen, bevor eine Datenquelle initialisiert wurde, IDBProperties::GetProperies zurück DB_S_ERRORSOCCURRED oder DB_E_ERRORSOCCURRED, nach Bedarf, 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.

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

MemberfunktionBeschreibung
IDataInitialize::GetDataSourcepwszInitializationString kann die neuen Schlüsselwörter ServerSPN und FailoverPartnerSPNenthalten.
IDataInitialize::GetInitializationStringWenn SSPROP_INIT_SERVERSPN und SSPROP_INIT_FAILOVERPARTNERSPN Nichtstandardwerte aufweisen, werden sie durch ppwszInitString als Schlüsselwortwerte für ServerSPN und FailoverPartnerSPNin die Initialisierungszeichenfolge aufgenommen. Andernfalls sind diese Schlüsselwörter nicht in der Initialisierungszeichenfolge enthalten.
IDBInitialize::InitializeSind 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 die Eigenschaften SSPROP_INIT_SERVER_SPN und SSPROP_INIT_FAILOVER_PARTNER_SPN festzulegen, bevor IDBInitialize:: Initialize aufgerufen wird. 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::GetPropertiesIDBProperties::GetProperties kann aufgerufen werden, um die Werte der neuen Eigenschaften zur datenquelleninitialisierung SSPROP_INIT_SERVERSPN und SSPROP_INIT_FAILOVERPARTNERSPN und die neuen Datenquelleneigenschaften SSPROP_AUTHENTICATIONMETHOD und SSPROP_MUTUALLYAUTHENTICATED abzurufen.
IdbProperties::GetPropertyInfoGetPropertyInfo schließt die neuen Eigenschaften zur datenquelleninitialisierung SSPROP_INIT_SERVERSPN und SSPROP_INIT_FAILOVERPARTNERSPN oder die neuen Datenquelleneigenschaften SSPROP_AUTHENTICATION_METHOD und SSPROP_MUTUALLYAUTHENTICATED.
IDBProperties::SetPropertiesIDBProperties:: SetProperties kann aufgerufen werden, um die Werte der neuen Datenquelle 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."

SQL Server Native Client (OLE DB)

Community-Beiträge

Anzeigen: