Noms principaux de service (SPN) dans les connexions clientes (OLE DB)

Cette rubrique décrit les propriétés et fonctions membres OLE DB qui prennent en charge les noms principaux de service (SPN) dans les applications clientes. Pour plus d'informations sur les noms principaux de service, consultez Prise en charge des noms de principaux du service (SPN) dans les connexions clientes.

Mots clés de chaîne d'initialisation du fournisseur

Les mots clés de chaîne d'initialisation du fournisseur suivants prennent en charge les SPN dans les applications OLE DB. Dans le tableau ci-dessous, les valeurs de la colonne de mot clé sont utilisées dans la chaîne IDBInitialize::Initialize du fournisseur. Les valeurs de la colonne Description sont utilisées dans les chaînes d'initialisation lors de la connexion à l'aide d'ADO ou de IDataInitialize::GetDataSource.

Mot clé

Description

Valeur

ServerSPN

SPN du serveur

SPN du serveur. La valeur par défaut est une chaîne vide, ce qui force SQL Server Native Client à utiliser le nom principal de service par défaut, généré par le fournisseur.

FailoverPartnerSPN

SPN du serveur partenaire de basculement

Nom principal de service du serveur partenaire de basculement. La valeur par défaut est une chaîne vide, ce qui force SQL Server Native Client à utiliser le nom principal de service par défaut, généré par le fournisseur.

Propriétés d'initialisation de la source de données

Les propriétés suivantes du jeu de propriétés DBPROPSET_SQLSERVERDBINIT permettent aux applications de spécifier des SPN.

Nom

Type

Utilisation

SSPROP_INIT_SERVERSPN

VT_BSTR, lecture/écriture

Spécifie le nom principal de service du serveur. La valeur par défaut est une chaîne vide, ce qui force SQL Server Native Client à utiliser le nom principal de service par défaut, généré par le fournisseur.

SSPROP_INIT_FAILOVERPARTNERSPN

VT_BSTR, lecture/écriture

Spécifie le nom principal de service du serveur partenaire de basculement. La valeur par défaut est une chaîne vide, ce qui force SQL Server Native Client à utiliser le nom principal de service par défaut, généré par le fournisseur.

Propriétés de la source de données

Les propriétés suivantes du jeu de propriétés DBPROPSET_SQLSERVERDATASOURCEINFO permettent aux applications d'identifier la méthode d'authentification.

Nom

Type

Utilisation

SSPROP_INTEGRATEDAUTHENTICATIONMETHOD

VT_BSTR, lecture seule

Retourne la méthode d'authentification utilisée pour la connexion. La valeur retournée à l'application est la valeur que Windows renvoie à SQL Server Native Client. Les valeurs possibles sont les suivantes :

  • « NTLM », lorsqu'une connexion est ouverte à l'aide de l'authentification NTLM.

  • « Kerberos », lorsqu'une connexion est ouverte à l'aide de l'authentification Kerberos.

Si une connexion a été ouverte et si la méthode d'authentification ne peut pas être déterminée, VT_EMPTY est retourné.

Cette propriété ne peut être lue que lorsqu'une source de données a été initialisée. Si vous essayez de lire la propriété avant qu'une source de données n'ait été initialisée, IDBProperties::GetProperies retourne DB_S_ERRORSOCCURRED ou DB_E_ERRORSOCCURRED, selon le cas, et DBPROPSTATUS_NOTSUPPORTED est défini dans DBPROPSET_PROPERTIESINERROR pour cette propriété. Ce comportement est conforme à la spécification principale OLE DB.

SSPROP_MUTUALLYAUTHENICATED

VT_BOOL, lecture seule

Retourne VARIANT_TRUE si les serveurs de la connexion ont été authentifiés mutuellement ; sinon, retourne VARIANT_FALSE.

Cette propriété ne peut être lue que lorsqu'une source de données a été initialisée. Si vous essayez de lire la propriété avant qu'une source de données n'ait été initialisée, IDBProperties::GetProperies retourne DB_S_ERRORSOCCURRED ou DB_E_ERRORSOCCURRED, selon le cas, et DBPROPSTATUS_NOTSUPPORTED est défini dans DBPROPSET_PROPERTIESINERROR pour cette propriété. Ce comportement est conforme à la spécification principale OLE DB.

Si cet attribut est interrogé pour une connexion n'ayant pas utilisé l'authentification Windows, VARIANT_FALSE est retourné.

Prise en charge des SPN par l'API OLE DB

Le tableau suivant décrit les fonctions membres OLE DB qui prennent en charge les SPN dans les connexions clientes :

Fonction membre

Description

IDataInitialize::GetDataSource

pwszInitializationString peut contenir les nouveaux mots clés ServerSPN et FailoverPartnerSPN.

IDataInitialize::GetInitializationString

Si SSPROP_INIT_SERVERSPN et SSPROP_INIT_FAILOVERPARTNERSPN n'ont pas de valeurs par défaut, ils sont inclus dans la chaîne d'initialisation par le biais de ppwszInitString utilisé comme valeur de mot clé pour ServerSPN et FailoverPartnerSPN. Sinon, ces mots clés ne sont pas inclus dans la chaîne d'initialisation.

IDBInitialize::Initialize

Si l'invite est activée en définissant DBPROP_INIT_PROMPT dans les propriétés d'initialisation de la source de données, la boîte de dialogue de connexion OLE DB s'affiche. Celle-ci vous permet d'entrer des SPN à la fois pour le serveur principal et pour le serveur partenaire de basculement.

Si elle est définie, la chaîne du fournisseur dans DPPROP_INIT_PROVIDERSTRING reconnaît les nouveaux mots clés ServerSPN et FailoverPartnerSPN et utilise leurs valeurs, le cas échéant, pour initialiser SSPROP_INIT_SERVER_SPN et SSPROP_INIT_FAILOVER_PARTNER_SPN.

IDBProperties::SetProperties peut être appelé pour définir les propriétés SSPROP_INIT_SERVER_SPN et SSPROP_INIT_FAILOVER_PARTNER_SPN avant que IDBInitialize::Initialize ne soit appelé. Il s'agit d'une alternative à l'utilisation d'une chaîne de fournisseur.

Si une propriété est définie à plusieurs emplacements, une valeur définie par programme est prioritaire sur un jeu de valeurs dans la chaîne du fournisseur. Une valeur définie dans une chaîne d'initialisation est prioritaire sur une valeur définie dans la boîte de dialogue de connexion.

Si le même mot clé apparaît plus d'une fois dans la chaîne du fournisseur, la valeur de la première occurrence est prioritaire.

IDBProperties::GetProperties

IDBProperties::GetProperties peut être appelé pour obtenir les valeurs des nouvelles propriétés d'initialisation de la source de données (SSPROP_INIT_SERVERSPN et SSPROP_INIT_FAILOVERPARTNERSPN) et des nouvelles propriétés de la source de données (SSPROP_AUTHENTICATIONMETHOD et SSPROP_MUTUALLYAUTHENTICATED).

IDBProperties::GetPropertyInfo

IdbProperties::GetPropertyInfo inclut alors les nouvelles propriétés d'initialisation de la source de données (SSPROP_INIT_SERVERSPN et SSPROP_INIT_FAILOVERPARTNERSPN) ou les nouvelles propriétés de la source de données (SSPROP_AUTHENTICATION_METHOD et SSPROP_MUTUALLYAUTHENTICATED).

IDBProperties::SetProperties

IDBProperties::SetProperties peut être appelé pour définir les valeurs des nouvelles propriétés d'initialisation de la source de données (SSPROP_INITSERVERSPN et SSPROP_INIT_FAILOVERPARTNERSPN).

Ces propriétés peuvent être définies à tout moment, mais si la source de données est déjà ouverte, l'erreur suivante est retournée : DB_E_ERRORSOCCURRED, « Une opération OLE DB en plusieurs étapes a généré des erreurs. Vérifiez chaque valeur d'état OLE DB disponible. Aucun travail n'a été effectué. »