Compartir a través de


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

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Importante

SQL Server Native Client (SNAC) no se incluye con:

  • SQL Server 2022 (16.x) y versiones posteriores
  • SQL Server Management Studio 19 y versiones posteriores

Sql Server Native Client (SQLNCLI o SQLNCLI11) y el proveedor MICROSOFT OLE DB heredado para SQL Server (SQLOLEDB) no se recomiendan para el desarrollo de aplicaciones nuevas.

En el caso de los proyectos nuevos, use uno de los siguientes controladores:

Para SQLNCLI que se incluye como componente de motor de base de datos de SQL Server (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 de entidad de seguridad 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 Valor
ServerSPN SPN del servidor. El valor predeterminado es una cadena vacía, lo que hace que SQL Server Native Client use 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 use 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 use 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)