Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: SQL Server 2022 (16.x) y versiones posteriores
El cifrado estricto de conexiones impone buenas prácticas de seguridad y hace que sea posible que los dispositivos de red estándar administren el tráfico de SQL Server. El cifrado estricto usa el flujo de datos tabulares (TDS) 8.0, que encapsula la sesión de TDS en Seguridad de la capa de transporte (TLS) para el cifrado de un extremo a otro.
En este artículo, aprenderá a conectarse a SQL Server 2022 (16.x) y versiones posteriores mediante el tipo de conexión strict.
Requisito previo
- SQL Server 2022 (16.x) o posterior
- Controlador ODBC o OLE DB para SQL Server
- ODBC Driver for SQL Server, versión 18.1.2.1 o superior
- OLE DB Driver for SQL Server, versión 19.2.0 o superior
- Cree e instale un certificado de seguridad de la capa de transporte (TLS) para SQL Server. Para obtener más información, vea Habilitación de conexiones cifradas en el motor de base de datos.
Conexión a SQL Server mediante una aplicación .NET
Para obtener información sobre cómo crear la cadena y conectarse a SQL Server mediante el tipo de cifrado strict, vea Sintaxis de cadena de conexión para saber cómo crear correctamente la cadena de conexión. Para obtener más información sobre las nuevas propiedades de cadena de conexión, vea Cambios adicionales en las propiedades de cifrado de cadena de conexión.
Conexión mediante un DSN ODBC
Una conexión se puede probar con el tipo de cifrado de conexión Strict mediante un DSN ODBC para SQL Server.
Busque la aplicación Orígenes de datos ODBC en Windows.
Asegúrese de que tiene el controlador ODBC más reciente; para ello, busque en la pestaña Controladores del Administrador de orígenes de datos ODBC.
En la pestaña DSN del sistema, seleccione Agregar para crear un DSN. Tras ello, seleccione ODBC Driver 18 for SQL Server. Seleccione Finalizar. Usaremos esto para probar nuestra conexión.
En la ventana Crear un nuevo origen de datos para SQL Server, proporcione un nombre para este origen de datos y agregue el nombre del servidor de SQL Server 2022 (16.x) a Servidor. Seleccione Siguiente.
Use todos los valores predeterminados de toda la configuración hasta llegar a la pantalla donde aparezca Cifrado de la conexión. Seleccione Estricto. Si el nombre del servidor especificado difiere del que consta en el certificado, o si se usa la dirección IP en su lugar, establezca HostName in certificate (Nombre de host de certificado) en el nombre que consta en el certificado. Seleccione Finalizar.
Cuando se abra el cuadro de diálogo Configuración de ODBC de Microsoft SQL Server, seleccione el botón Probar origen de datos... para probar la conexión. Esto debería aplicar la conexión
stricta SQL Server en esta prueba.
Conexión mediante vínculo de datos universal
La conexión a SQL Server mediante cifrado strict también se puede probar mediante OLE DB Driver con UDL (vínculo de datos universal).
Para crear un archivo UDL para probar la conexión, haga clic con el botón derecho en el escritorio y seleccione Nuevo>Documento de texto. Debe cambiar la extensión de
txtaudl. Puede dar al archivo el nombre que quiera.Nota:
Debe poder ver el nombre de la extensión para cambiar la extensión de
txtaudl. Si no puede ver la extensión, puede activar la visualización de las extensiones abriendo el Explorador de archivos>Ver>Mostrar>Extensiones de nombre de archivo.Abra el archivo UDL que ha creado y vaya a la pestaña Proveedor para seleccionar Microsoft OLE DB Driver 19 for SQL Server. Seleccione Siguiente>>.
En la pestaña Conexión, escriba el nombre del servidor de SQL Server y seleccione el método de autenticación que use para iniciar sesión en SQL Server.
En la pestaña Opciones avanzadas, seleccione Estricto en Cifrado de la conexión. Si el nombre del servidor especificado difiere del que consta en el certificado, o si se usa la dirección IP en su lugar, establezca HostName in certificate (Nombre de host de certificado) en el nombre que consta en el certificado. Vuelva a la pestaña Conexión cuando haya terminado.
Seleccione Probar conexión para probar la conexión con el cifrado de conexión
strict.
Conexión con SSMS
A partir de la versión 20, puede aplicar el cifrado estricto en SQL Server Management Studio (SSMS) en la pestaña Inicios de sesión del cuadro de diálogo Conectar al servidor :
Conexión a un grupo de disponibilidad AlwaysOn
A partir de SQL Server 2025 (17.x), puede cifrar la comunicación entre el clúster de conmutación por error de Windows Server y una réplica de grupo de disponibilidad Always On usando el tipo de cifrado de conexión Strict o Mandatory. El grupo de disponibilidad solo puede aplicar el cifrado si se basa en un clúster de conmutación por error de Windows Server. Otros tipos de grupos de disponibilidad no admiten el cifrado estricto.
Nota:
El cifrado de los extremos de creación de reflejo de la base de datos se configura por separado y no se admite TLS. Para obtener más información, consulte Seguridad del transporte en grupos de disponibilidad y duplicación de la base de datos.
Los pasos varían dependiendo de si ya existe su disponibilidad o no.
Para forzar el cifrado estricto a un nuevo grupo de disponibilidad, siga estos pasos:
- Si aún no lo ha hecho, importe el certificado TLS a todas las réplicas del grupo de disponibilidad, tal como se definen en los requisitos de certificado. Reinicie cada instancia de SQL Server después de importar el certificado.
- Pruebe las conexiones a cada réplica de SQL Server mediante uno de los métodos mencionados en este artículo que aplica el cifrado.
-
CREATE AVAILABILITY GROUP con la propiedad
Encryptestablecida enStricten la cláusulaCLUSTER_CONNECTION_OPTIONSpara el grupo de disponibilidad. Esto garantiza que todas las conexiones al grupo de disponibilidad usen el tipo de cifrado especificado. - Si el grupo de disponibilidad está actualmente en línea, conmute por error el grupo de disponibilidad a una réplica secundaria para aplicar la nueva configuración de cifrado al grupo de disponibilidad. Si el grupo de disponibilidad no se puede conectar, podría ser que
ClusterConnectionOptionsno se ha ajustado correctamente. Compruebe el cluster.log en busca de errores ODBC relacionados con el clúster que no puede conectarse a la réplica de SQL Server. Opcionalmente, puede restaurar el grupo de disponibilidad a la réplica principal original, después de que la nueva réplica secundaria esté en línea y conectada al grupo de disponibilidad. - (Opcional) Puede aplicar aún más el cifrado estableciendo la opción Forzar cifrado estricto en
Yesen las propiedades del Administrador de configuración de SQL Server para el protocolo de conexión para cada réplica. Esta configuración garantiza que todas las conexiones a las réplicas del grupo de disponibilidad usen cifrado estricto. Reinicie cada réplica de SQL Server después de cambiar esta configuración.
Conexión a una instancia de clúster de conmutación por error
A partir de SQL Server 2025 (17.x), puede cifrar la comunicación entre el clúster de conmutación por error de Windows Server y una instancia de clúster de conmutación por error Always On utilizando el tipo de cifrado de conexión Strict o Mandatory. Para ello, siga estos pasos:
- Si aún no lo ha hecho, importe el certificado TLS a cada nodo del clúster de conmutación por error, tal como se define en los requisitos de certificado. Reinicie la instancia de SQL Server después de importar el certificado.
- Pruebe las conexiones a la instancia del clúster de conmutación por error mediante uno de los métodos mencionados en este artículo que aplica el cifrado.
-
ALTER SERVER CONFIGURATION con la cláusula
CLUSTER_CONNECTION_OPTIONSpara establecer la propiedadEncryptenMandatoryoStrict. Esto garantiza que todas las conexiones a la instancia del clúster de conmutación por error usen el tipo de cifrado especificado. - Conmute la instancia a un nodo secundario para aplicar la nueva configuración de cifrado a la instancia del clúster de conmutación por error. Si la instancia del clúster de conmutación por error no puede ponerse en línea, podría deberse a que
ClusterConnectionOptionsno está configurado correctamente. Compruebe el cluster.log para ver si hay errores de ODBC relacionados con el clúster que no se pueden conectar a la instancia de SQL Server. Opcionalmente, puede revertir la instancia al nodo principal original después de que el nuevo nodo secundario esté en línea y conectado a la instancia del clúster de conmutación por error. - (Opcional) Puede aplicar aún más el cifrado estableciendo la opción Forzar cifrado estricto en
Yesen las propiedades del Administrador de configuración de SQL Server para el protocolo de conexión para cada nodo del clúster. Esta configuración garantiza que todas las conexiones a la instancia del clúster de conmutación por error usen cifrado estricto. Realice este cambio en el nodo secundario, produzca el traspaso de la instancia a él y, a continuación, realice el cambio en el nodo principal.
cifrado de la conexión de Agente SQL Server
A partir de SQL Server 2025 (17.x), Agente SQL Server usa Microsoft controlador ODBC 18 para SQL Server, que admite TDS 8.0 y TLS 1.3. Agente SQL Server ajusta automáticamente su cifrado de conexión para que coincida con la configuración de la instancia de SQL Server.
Cómo Agente SQL Server determina el cifrado
Cuando se inicia Agente SQL Server, consulta las siguientes claves del Registro en el equipo local para determinar el nivel de cifrado configurado para SQL Server:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.<InstanceName>\MSSQLServer\SuperSocketNetLib\ForceEncryptionHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.<InstanceName>\MSSQLServer\SuperSocketNetLib\ForceStrict-
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.<InstanceName>\MSSQLServer\SuperSocketNetLib\SubjectAlternativeName(novedad en SQL Server 2025 (17.x))
En función de estos valores, Agente SQL Server selecciona su modo de conexión:
- Si se habilita Force Strict Encryption, Agente SQL Server se conecta mediante
strict(TDS 8.0). - Si Force Encryption está habilitado, Agente SQL Server se conecta mediante
mandatory(TDS 7.x). - Si ninguno está habilitado, Agente SQL Server se conecta mediante
optional(TDS 7.x).
Los pasos del trabajo de T-SQL local heredan la misma configuración de cifrado que el servicio Agente SQL Server. Si Agente SQL Server se conecta con strict, los trabajos de T-SQL ejecutados localmente en el servidor usan la misma opción.
Importante
TLS 1.3 solo funciona con cifrado estricto. Si la instancia de SQL Server solo tiene TLS 1.3 habilitado a nivel del sistema operativo, pero solo está establecido Forzar cifrado (no Forzar cifrado estricto), Agente SQL Server no puede iniciarse porque los modos mandatory y optional requieren TDS 7.x, que no es compatible con TLS 1.3.
Matriz de configuración de TLS y cifrado
| Versión de TLS habilitada | Ajuste de configuración | resultado de Agente SQL Server | Notes |
|---|---|---|---|
| Solo TLS 1.3 | Forzar cifrado estricto | Se conecta correctamente | TDS 8.0 usa cifrado estricto |
| Solo para TLS 1.3 | Forzar el cifrado | No se puede conectar | TLS 1.3 requiere estrictamente |
| Solo TLS 1.3 | Ninguno | No se puede conectar | TLS 1.3 requiere cifrado estricto |
| Solo para TLS 1.2 | Forzar cifrado estricto | Se conecta correctamente | TDS 8.0 puede usar TLS 1.2 |
| Solo se admite TLS 1.2 | Forzar el cifrado | Se conecta correctamente | TDS 7.x con carácter obligatorio |
| Solo se admite TLS 1.2 | Ninguno | Se conecta correctamente | TDS 7.x con opción |
| TLS 1.2 y TLS 1.3 | Forzar cifrado estricto | Se conecta correctamente | TDS 8.0 usa cifrado estricto |
| TLS 1.2 y TLS 1.3 | Forzar el cifrado | Se conecta correctamente | TDS 7.x con carácter obligatorio |
| TLS 1.2 y TLS 1.3 | Ninguno | Se conecta correctamente | TDS 7.x con opción |
Comprobación del cifrado negociado de Agente SQL Server
Después de que Agente SQL Server se conecte, ejecute la consulta siguiente para confirmar su modo de cifrado:
SELECT s.session_id, c.encrypt_option, s.program_name, s.client_interface_name, s.nt_user_name
FROM sys.dm_exec_connections AS c
INNER JOIN sys.dm_exec_sessions AS s
ON c.session_id = s.session_id
WHERE s.program_name LIKE 'SQLAgent%';
La columna encrypt_option devuelve TRUE cuando Agente SQL Server se conecta mediante cifrado.
Para obtener información general sobre Agente SQL Server en sí, consulte Agente SQL Server.
Forzar el cifrado estricto con el Administrador de configuración de SQL Server
Puede aplicar el cifrado estricto mediante el Administrador de configuración de SQL Server a partir de SQL Server 2022 (16.x). Para ello, siga estos pasos:
Abra el Administrador de configuración de SQL Server.
En el panel izquierdo, expanda Configuración de red de SQL Server y seleccione Protocolos para [NombreDeInstancia].
Haga clic con el botón derecho en TCP/IP y seleccione Propiedades.
En el cuadro de diálogo Propiedades de TCP/IP , vaya a la pestaña Marcas y seleccione Sí para la opción Forzar cifrado estricto :
Reinicie la instancia de SQL Server durante una ventana de mantenimiento para aplicar los cambios.
Comentarios
Si ve SSL certificate validation failed, valide lo siguiente:
- El certificado de servidor es válido en el equipo que está usando para realizar las pruebas.
- Se cumple al menos una de las siguientes condiciones:
- El Proveedor de SQL Server coincide con el nombre de la CA o con uno de los nombres DNS en el certificado.
- La propiedad de cadena de conexión
HostNameInCertificatecoincide con el nombre de entidad de certificación o con uno de los nombres DNS en el certificado.