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

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Importante

SQL Server Native Client (a menudo abreviado SNAC) se ha quitado de SQL Server 2022 (16.x) y SQL Server Management Studio 19 (SSMS). No se recomienda SQL Server Native Client (SQLNCLI o SQLNCLI11) ni el proveedor OLE DB de Microsoft heredado para SQL Server (SQLOLEDB) para el desarrollo de nuevas aplicaciones. Cambie al nuevo controlador OLE DB de Microsoft (MSOLEDBSQL) para SQL Server o al controlador ODBC de Microsoft ODBC Driver for SQL Server más reciente de ahora en adelante. Para SQLNCLI que se incluye como componente de SQL Server motor de base de datos (versiones 2012 a 2019), consulte esta excepción de ciclo de vida de soporte técnico.

En este tema se describen las funciones y atributos ODBC que admiten nombres principales de servicio (SPN) en aplicaciones cliente. Para obtener más información sobre los SPN en las aplicaciones cliente, consulte Compatibilidad con el nombre principal de servicio (SPN) en conexiones de cliente y Obtención de la autenticación Kerberos mutua.

Palabras clave de cadena de conexión

Las siguientes palabras clave de cadena de conexión permiten a las aplicaciones cliente especificar un SPN.

Palabra clave Value
ServerSPN SPN del servidor. El valor predeterminado es una cadena vacía, lo que hace que SQL Server Native Client usen el SPN generado por el controlador predeterminado.
FailoverPartnerSPN SPN del asociado de conmutación por error. El valor predeterminado es una cadena vacía, lo que hace que SQL Server Native Client usen el SPN generado por el controlador predeterminado.

Atributos de conexión

Los siguientes atributos de conexión permiten que las aplicaciones cliente especifiquen un SPN y consulten el método de autenticación.

Nombre Tipo Uso
SQL_COPT_SS_SERVER_SPN

SQL_COPT_SS_FAILOVER_PARTNER_SPN
SQLTCHAR, lectura/escritura Especifica el SPN del servidor. El valor predeterminado es una cadena vacía, lo que hace que SQL Server Native Client usen el SPN generado por el controlador predeterminado.

Este atributo solo podrá consultarse una vez que se haya establecido mediante programación o una vez que se haya abierto una conexión. Si se intenta consultar este atributo en una conexión que no está abierta y el atributo no se ha establecido mediante programación, se devuelve SQL_ERROR y se registra un error de diagnóstico con SQLState 08003 y el mensaje "Conexión no abierta".

Si se intenta establecer este atributo cuando hay una conexión abierta, se devuelve SQL_ERROR y se registra un error de diagnóstico con SQLState HY011 y el mensaje "Operación no válido en este momento".
SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD SQLTCHAR, 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. Los valores posibles son:

"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.



Este atributo solamente puede leerse para una conexión abierta que use la autenticación de Windows. Si se intenta leer antes de que se haya abierto una conexión, se devuelve SQL_ERROR y se registra un error con SQLState 08003 y el mensaje "Conexión no abierta".

Si este atributo se consulta en una conexión que no utilizó la autenticación de Windows, se devuelve SQL_ERROR y se registra un error con SQLState HY092 y el mensaje "Identificador de opción/atributo no válido (SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD solamente está disponible para conexiones de confianza)".

Si no puede determinarse el método de autenticación, se devuelve SQL_ERROR y se registra un error con SQLState HY000 y el mensaje "Error general".
SQL_COPT_SS_MUTUALLY_AUTHENTICATED SQLSMALLINT, solo lectura Devuelve SQL_TRUE si el servidor de la conexión se autenticó mutuamente; de lo contrario, devuelve SQL_FALSE.

Este atributo solamente puede leerse para una conexión abierta. Si se intenta leer antes de que se haya abierto una conexión, se devuelve SQL_ERROR y se registra un error con SQLState 08003 y el mensaje "Conexión no abierta".

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

Compatibilidad con la función ODBC para especificar SPN

Las siguientes funciones ODBC admiten aplicaciones cliente y SPN:

Consulte también

SQL Server Native Client (ODBC)