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).
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 die Werte aus der Schlüsselwortspalte für die Anbieterzeichenfolge IDBInitialize::Initialize verwendet. Beim Herstellen einer Verbindung mit ADO oder IDataInitialize::GetDataSource werden die Werte aus der Beschreibungsspalte in Initialisierungszeichenfolgen verwendet.
Schlüsselwort | BESCHREIBUNG | value |
---|---|---|
ServerSPN | Server-SPN | Der SPN für den Server. Der Standardwert ist eine leere Zeichenfolge, die dazu führt, dass SQL Server Native Client den vom Anbieter generierten Standard-SPN verwendet. |
FailoverPartnerSPN | Failoverpartner-SPN | Der SPN für den Failoverpartner. Der Standardwert ist eine leere Zeichenfolge, die dazu führt, dass SQL Server Native Client den vom Anbieter generierten Standard-SPN verwendet. |
Eigenschaften zur Datenquelleninitialisierung
Die folgenden Eigenschaften in der DBPROPSET_SQLSERVERDBINIT
-Eigenschaftengruppe ermöglichen es Anwendungen, SPNs anzugeben.
Name | type | Verwendung |
---|---|---|
SSPROP_INIT_SERVERSPN | VT_BSTR, Lese-/Schreibzugriff | Gibt den SPN für den Server an. Der Standardwert ist eine leere Zeichenfolge, die dazu führt, dass SQL Server Native Client den vom Anbieter generierten Standard-SPN verwendet. |
SSPROP_INIT_FAILOVERPARTNERSPN | VT_BSTR, Lese-/Schreibzugriff | Gibt den SPN für den Failoverpartner an. Der Standardwert ist eine leere Zeichenfolge, die dazu führt, dass SQL Server Native Client den vom Anbieter generierten Standard-SPN verwendet. |
Datenquelleneigenschaften
Die folgenden Eigenschaften in der DBPROPSET_SQLSERVERDATASOURCEINFO
-Eigenschaftengruppe ermöglichen es Anwendungen, die Authentifizierungsmethode zu ermitteln.
Name | type | Verwendung |
---|---|---|
SSPROP_INTEGRATEDAUTHENTICATIONMETHOD | VT_BSTR, 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. Folgende Werte sind möglich: – "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. 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 nicht über Standardwerte verfügen, werden sie in die Initialisierungszeichenfolge über ppwszInitString als Schlüsselwort (keyword) Werte für ServerSPN und FailoverPartnerSPN eingeschlossen. 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. Die Anbieterzeichenfolge in DPPROP_INIT_PROVIDERSTRING, sofern festgelegt, erkennt die neuen Schlüsselwörter ServerSPN und FailoverPartnerSPN verwendet deren Werte, falls vorhanden, um SSPROP_INIT_SERVER_SPN und SSPROP_INIT_FAILOVER_PARTNER_SPN zu initialisieren.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." |