Nombres de entidad de seguridad del servicio (SPN) en conexiones cliente (OLE DB)

En este tema se describen propiedades y funciones miembro de OLE DB compatibles con los nombres principales de servicio (SPN) en aplicaciones cliente. Para obtener más información sobre los SPN en aplicaciones cliente, vea Compatibilidad con Nombre de la entidad de seguridad del servicio (SPN) en conexiones cliente.

Palabras clave de cadena de inicialización de proveedor

Las siguientes palabras clave de cadena de inicialización de proveedor admiten SPN en aplicaciones OLE DB. En la tabla siguiente, los valores de la columna de palabra clave se utilizan para la cadena del proveedor de IDBInitialize::Initialize. Los valores de la columna de descripción se utilizan en cadenas de inicialización al conectar utilizando ADO o IDataInitialize::GetDataSource.

Palabra clave

Descripción

Valor

ServerSPN

Dirección SPN del servidor

SPN del servidor. El valor predeterminado es una cadena vacía, que hace que SQL Server Native Client use el valor predeterminado, SPN generado por proveedor.

FailoverPartnerSPN

SPN de asociado de conmutación por error

SPN del asociado de conmutación por error. El valor predeterminado es una cadena vacía, que hace que SQL Server Native Client use el valor predeterminado, SPN generado por proveedor.

Propiedades de inicialización de origen de datos

Las propiedades siguientes del conjunto de propiedades DBPROPSET_SQLSERVERDBINIT permiten a las aplicaciones especificar SPN.

Nombre

Tipo

Uso

SSPROP_INIT_SERVERSPN

VT_BSTR, lectura/escritura

Especifica el SPN del servidor. El valor predeterminado es una cadena vacía, que hace que SQL Server Native Client use el valor predeterminado, SPN generado por proveedor.

SSPROP_INIT_FAILOVERPARTNERSPN

VT_BSTR, lectura/escritura

Especifica el SPN para el asociado de conmutación por error. El valor predeterminado es una cadena vacía, que hace que SQL Server Native Client use el valor predeterminado, SPN generado por proveedor.

Propiedades de origen de datos

Las propiedades siguientes del conjunto de propiedades DBPROPSET_SQLSERVERDATASOURCEINFO permiten a las aplicaciones detectar el método de autenticación.

Nombre

Tipo

Uso

SSPROP_INTEGRATEDAUTHENTICATIONMETHOD

VT_BSTR, sólo lectura

Devuelve el método de autenticación que utiliza la conexión. El valor devuelto a la aplicación es el valor que Windows devuelve a SQL Server Native Client. A continuación se indican los posibles valores:

  • "NTLM", que se devuelve cuando una conexión se abre mediante la autenticación NTLM.

  • "Kerberos", que se devuelve cuando una conexión se abre mediante la autenticación Kerberos.

Si se ha abierto una conexión y no se puede determinar el método de autenticación, se devuelve VT_EMPTY.

Esta propiedad sólo se puede leer cuando se ha inicializado un origen de datos. Si intenta leer la propiedad antes de que se haya inicializado un origen de datos, IDBProperties::GetProperies devolverá DB_S_ERRORSOCCURRED o DB_E_ERRORSOCCURRED, según corresponda, y DBPROPSTATUS_NOTSUPPORTED se establecerá en DBPROPSET_PROPERTIESINERROR para esta propiedad. Este comportamiento está de acuerdo con la especificación básica de OLE DB.

SSPROP_MUTUALLYAUTHENICATED

VT_BOOL, sólo lectura

Devuelve VARIANT_TRUE si los servidores de la conexión se autenticaron mutuamente; de lo contrario, devuelve VARIANT_FALSE.

Esta propiedad sólo se puede leer cuando se ha inicializado un origen de datos. Si hay un intento de leer la propiedad antes de que se haya inicializado un origen de datos, IDBProperties::GetProperies devolverá DB_S_ERRORSOCCURRED o DB_E_ERRORSOCCURRED, según corresponda, y DBPROPSTATUS_NOTSUPPORTED se establecerá en DBPROPSET_PROPERTIESINERROR para esta propiedad. Este comportamiento está de acuerdo con la especificación básica de OLE DB

Si este atributo se consulta para una conexión que no usó la autenticación de Windows, se devuelve VARIANT_FALSE.

Compatibilidad de API OLE DB con SPN

La tabla siguiente describe las funciones del miembro OLE DB que admiten SPN en conexiones de cliente:

Función de miembro

Descripción

IDataInitialize::GetDataSource

pwszInitializationString puede conectar las nuevas palabras clave ServerSPN y FailoverPartnerSPN.

IDataInitialize::GetInitializationString

Si SSPROP_INIT_SERVERSPN y SSPROP_INIT_FAILOVERPARTNERSPN tienen valores no predeterminados, estarán incluidos en la cadena de inicialización mediante ppwszInitString como valores de palabra clave para ServerSPN y FailoverPartnerSPN. De lo contrario, estas palabras clave no estarán incluidas en la cadena de inicialización.

IDBInitialize::Initialize

Si están habilitados los mensajes configurando DBPROP_INIT_PROMPT en las propiedades de inicialización de origen de datos, se mostrará el cuadro de diálogo Inicio de sesión de OLE DB. Esto permite escribir SPN tanto para el servidor principal como para su asociado de conmutación por error.

La cadena de proveedor de DPPROP_INIT_PROVIDERSTRING, si se establece, reconoce las nuevas palabras clave ServerSPN y FailoverPartnerSPN y utiliza sus valores, si están presentes, para inicializar SSPROP_INIT_SERVER_SPN y SSPROP_INIT_FAILOVER_PARTNER_SPN.

Se puede llamar a IDBProperties::SetProperties para establecer las propiedades SSPROP_INIT_SERVER_SPN y SSPROP_INIT_FAILOVER_PARTNER_SPN antes de llamar a IDBInitialize::Initialize. Ésta es una alternativa a utilizar una cadena de proveedor.

Si una propiedad se establece en más de un lugar, un valor establecido mediante programación tiene precedencia sobre un conjunto de valores en la cadena de proveedor. Un conjunto de valores en una cadena de inicialización tiene precedencia sobre un conjunto de valores en un cuadro de diálogo de inicio de sesión.

Si la misma palabra clave aparece más de una vez en la cadena del proveedor, el valor de primera aparición tiene prioridad.

IDBProperties::GetProperties

Se puede llamar a IDBProperties::GetProperties para obtener los valores de las nuevas propiedades de inicialización de origen de datos SSPROP_INIT_SERVERSPN y SSPROP_INIT_FAILOVERPARTNERSPN y de las nuevas propiedades de origen de datos SSPROP_AUTHENTICATIONMETHOD y SSPROP_MUTUALLYAUTHENTICATED.

IDBProperties::GetPropertyInfo

IdbProperties::GetPropertyInfo incluirá las nuevas propiedades de inicialización de origen de datos SSPROP_INIT_SERVERSPN y SSPROP_INIT_FAILOVERPARTNERSPN, o las nuevas propiedades de origen de datos SSPROP_AUTHENTICATION_METHOD y SSPROP_MUTUALLYAUTHENTICATED.

IDBProperties::SetProperties

Se puede llamar a IDBProperties::SetProperties para establecer los valores de las nuevas propiedades de inicialización de origen de datos SSPROP_INITSERVERSPN y SSPROP_INIT_FAILOVERPARTNERSPN.

Estas propiedades se pueden devolver en cualquier momento, pero si el origen de datos ya está abierto, se devolverá el error siguiente: DB_E_ERRORSOCCURRED, "La operación de múltiples pasos de OLE DB generó errores. Compruebe los valores de estado de OLE DB si es posible. No se realizó ningún trabajo."