Agrupación de conexiones con reconocimiento del controlador en el controlador ODBC para SQL Server

Descargar controlador ODBC

ODBC Driver for SQL Server es compatible con la agrupación de conexiones dependientes del controlador. En este artículo se describen las mejoras introducidas en la agrupación de conexiones con reconocimiento del controlador en Microsoft ODBC Driver for SQL Server en Windows:

  • Con independencia de las propiedades de conexión, las conexiones que usan SQLDriverConnect pertenecen a un grupo independiente de las conexiones que usan SQLConnect.

  • Al usar la autenticación de SQL Server y la agrupación de conexiones dependientes del controlador, el controlador no utiliza el contexto de seguridad del usuario de Windows para el subproceso actual con el fin de separar las conexiones del grupo. Es decir, si las conexiones contienen parámetros equivalentes en escenarios de suplantación de Windows con autenticación de SQL Server y usan las mismas credenciales de autenticación de SQL Server para conectarse al back-end, otros usuarios de Windows podrían utilizar el mismo grupo de conexiones. Al usar la autenticación de Windows y la agrupación de conexiones dependientes del controlador, el controlador utiliza el contexto de seguridad del usuario de Windows en el subproceso actual con el fin de separar las conexiones del grupo. Es decir, en escenarios de suplantación de Windows, varios usuarios de Windows no comparten las conexiones aunque usen los mismos parámetros.

  • Al usar Microsoft Entra ID (anteriormente llamado Azure Active Directory) y la agrupación de conexiones dependiente del controlador, el controlador también usa el valor de autenticación para determinar la pertenencia al grupo de conexiones.

  • La característica de agrupación de conexiones dependientes del controlador impide que se devuelva una conexión incorrecta del grupo.

  • Asimismo, reconoce los atributos de conexión específicos del controlador. Por tanto, si una conexión usa SQL_COPT_SS_APPLICATION_INTENT configurado como de solo lectura, esa conexión tendrá su propio grupo de conexiones.

  • Al establecer el atributo SQL_COPT_SS_ACCESS_TOKEN, una conexión se agrupa por separado.

Si uno de los siguientes id. de atributo de conexión o palabras clave de cadena de conexión difiere entre la cadena de conexión y la cadena de conexión agrupada, el controlador utilizará una conexión agrupada. Sin embargo, el rendimiento es mejor si coinciden todos los identificadores de atributos de conexión o las palabras clave de la cadena de conexión. (Para que coincida con una conexión del grupo, el controlador restablece el atributo). El rendimiento se degrada porque para el restablecimiento de los parámetros siguientes se necesita una llamada de red adicional.

  • Si dos o más de los siguientes atributos o palabras clave de conexión son diferentes, no se usa una conexión agrupada.

    • Language
    • QuoteId
    • SQL_ATTR_TXN_ISOLATION
    • SQL_COPT_SS_QUOTED_IDENT
  • Si hay una diferencia en cualquiera de las siguientes palabras clave de conexión entre la cadena de conexión y una cadena de conexión agrupada, no se usa una conexión agrupada.

    Palabra clave ODBC Driver 13+ ODBC Driver 11
    Address Sí Sí
    AnsiNPW Sí Sí
    App Sí Sí
    ApplicationIntent Sí Sí
    Authentication Sí No
    ColumnEncryption Sí No
    Database Sí Sí
    Encrypt Sí Sí
    Failover_Partner Sí Sí
    FailoverPartnerSPN Sí Sí
    MARS_Connection Sí Sí
    Network Sí Sí
    PWD Sí Sí
    Server Sí Sí
    ServerSPN Sí Sí
    TransparentNetworkIPResolution Sí Sí
    Trusted_Connection Sí Sí
    TrustServerCertificate Sí Sí
    UID Sí Sí
    WSID Sí Sí
  • Si hay una diferencia en cualquiera de los siguientes atributos de conexión entre la cadena de conexión y una cadena de conexión agrupada, no se usa una conexión agrupada.

    Atributo ODBC Driver 13+ ODBC Driver 11
    SQL_ATTR_CURRENT_CATALOG Sí Sí
    SQL_ATTR_PACKET_SIZE Sí Sí
    SQL_COPT_SS_ANSI_NPW Sí Sí
    SQL_COPT_SS_ACCESS_TOKEN Sí No
    SQL_COPT_SS_AUTHENTICATION Sí No
    SQL_COPT_SS_ATTACHDBFILENAME Sí Sí
    SQL_COPT_SS_BCP Sí Sí
    SQL_COPT_SS_COLUMN_ENCRYPTION Sí No
    SQL_COPT_SS_CONCAT_NULL Sí Sí
    SQL_COPT_SS_ENCRYPT Sí Sí
    SQL_COPT_SS_FAILOVER_PARTNER Sí Sí
    SQL_COPT_SS_FAILOVER_PARTNER_SPN Sí Sí
    SQL_COPT_SS_INTEGRATED_SECURITY Sí Sí
    SQL_COPT_SS_MARS_ENABLED Sí Sí
    SQL_COPT_SS_OLDPWD Sí Sí
    SQL_COPT_SS_SERVER_SPN Sí Sí
    SQL_COPT_SS_TRUST_SERVER_CERTIFICATE Sí Sí
    SSPROP_AUTH_REPL_SERVER_NAME Sí Sí
    SQL_COPT_SS_TNIR Sí No
  • El controlador puede restablecer y ajustar los siguientes atributos y palabras clave de conexión sin realizar una llamada de red adicional. El controlador restablece estos parámetros para garantizar que la conexión no contenga información incorrecta.

    Estas palabras clave de conexión no se tienen en cuenta cuando el Driver Manager intenta hacer coincidir su conexión con una conexión del pool de conexiones. (Incluso si cambia uno de estos parámetros, se puede reutilizar una conexión existente. El controlador restablecerá las opciones, según sea necesario). Estos atributos se pueden restablecer en el lado cliente sin realizar una llamada de red adicional.

    Palabra clave ODBC Driver 13+ ODBC Driver 11
    AutoTranslate Sí Sí
    Description Sí Sí
    MultisubnetFailover Sí Sí
    QueryLog_On Sí Sí
    QueryLogFile Sí Sí
    QueryLogTime Sí Sí
    Regional Sí Sí
    StatsLog_On Sí Sí
    StatsLogFile Sí Sí

    Si cambia uno de los siguientes atributos de conexión, se puede reutilizar una conexión existente. El controlador restablecerá el valor según proceda. El controlador puede restablecer estos atributos en el cliente sin realizar una llamada de red adicional.

    Atributo ODBC Driver 13+ ODBC Driver 11
    Todos los atributos de sentencia Sí Sí
    SQL_ATTR_AUTOCOMMIT Sí Sí
    SQL_ATTR_CONNECTION_TIMEOUT Sí Sí
    SQL_ATTR_DISCONNECT_BEHAVIOR SQL_ATTR_CONNECTION_TIMEOUT Sí Sí
    SQL_ATTR_LOGIN_TIMEOUT Sí Sí
    SQL_ATTR_ODBC_CURSORS Sí Sí
    SQL_COPT_SS_PERF_DATA Sí Sí
    SQL_COPT_SS_PERF_DATA_LOG Sí Sí
    SQL_COPT_SS_PERF_DATA_LOG_NOW Sí Sí
    SQL_COPT_SS_PERF_QUERY Sí Sí
    SQL_COPT_SS_PERF_QUERY_INTERVAL Sí Sí
    SQL_COPT_SS_PERF_QUERY_LOG Sí Sí
    SQL_COPT_SS_PRESERVE_CURSORS Sí Sí
    SQL_COPT_SS_TRANSLATE Sí Sí
    SQL_COPT_SS_USER_DATA Sí Sí
    SQL_COPT_SS_WARN_ON_CP_ERROR Sí Sí