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. Para obtener un ejemplo, vea Autenticación integrada de Kerberos (OLE DB).
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, solo 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:
Si se ha abierto una conexión y no se puede determinar el método de autenticación, se devuelve VT_EMPTY. Esta propiedad solo 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, solo lectura |
Devuelve VARIANT_TRUE si los servidores de la conexión se autenticaron mutuamente; de lo contrario, devuelve VARIANT_FALSE. Esta propiedad solo 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." |