Compartir a través de


Seguridad de transporte - Creación de reflejo de la base de datos - Grupos de disponibilidad AlwaysOn

Se aplica a: SQL Server

La seguridad en el transporte implica la autenticación y, opcionalmente, el cifrado de los mensajes intercambiados entre las bases de datos. Para la creación de reflejo de la base de datos y Grupos de disponibilidad AlwaysOn, la autenticación y el cifrado se configuran en el extremo de creación de reflejo de la base de datos. Para ver una introducción a los extremos de creación de reflejo de la base de datos, vea El extremo de creación de reflejo de la base de datos (SQL Server).

En este tema:

Authentication

Autenticación es el proceso de comprobar que un usuario es quien dice ser. Las conexiones entre extremos de creación de reflejo de la base de datos requieren autenticación. Las solicitudes de conexión desde un asociado o testigo, según corresponda, deben autenticarse.

El tipo de autenticación que utiliza una instancia de servidor para la creación de reflejo de la base de datos o los grupos de disponibilidad de Always On es una propiedad del extremo de creación de reflejo de la base de datos. Existen dos tipos de seguridad de transporte para los puntos de conexión de creación de reflejo de la base de datos: autenticación de Windows (la interfaz del proveedor de compatibilidad para seguridad (SSPI)) y la autenticación basada en certificados.

Autenticación de Windows

En la autenticación de Windows, cada instancia de servidor inicia sesión en el otro lado mediante las credenciales de Windows de la cuenta de usuario de Windows en la que se ejecuta el proceso. La autenticación de Windows puede requerir alguna configuración manual de las cuentas de inicio de sesión, como se indica a continuación:

  • Si las instancias de SQL Server se ejecutan como servicios en la misma cuenta de dominio, no se requiere ninguna configuración adicional.

  • Si las instancias de SQL Server se ejecutan como servicios con diferentes cuentas de dominio (en el mismo dominio o en dominios de confianza), el inicio de sesión de cada cuenta debe crearse en master en cada una de las otras instancias de servidor, y a ese inicio de sesión se le deben conceder permisos CONNECT en el extremo.

  • Si las instancias de SQL Server se ejecutan como cuenta de servicio de red, el inicio de sesión de cada cuenta de equipo host (NombreDeDominio\NombreDeEquipo$) se debe crear en master en cada uno de los demás servidores, y a ese inicio de sesión se le deben conceder permisos CONNECT en el extremo. Esto se debe a que una instancia de servidor que se ejecuta en la cuenta Servicio de red se autentica mediante la cuenta de dominio del equipo host.

Nota:

Para ver un ejemplo de configuración de una sesión de creación de reflejo de base de datos por medio de la autenticación de Windows, vea Ejemplo: Configurar la creación de reflejo de la base de datos mediante la autenticación de Windows (Transact-SQL).

Certificados

En ciertas situaciones, como cuando las instancias de servidor no están en dominios de confianza o cuando SQL Server se ejecuta como servicio local, la autenticación de Windows no está disponible. En estos casos, en lugar de credenciales de usuario, se requieren certificados para autenticar solicitudes de conexión. El extremo de creación de reflejo de cada instancia de servidor debe configurarse con su propio certificado creado localmente.

El método de cifrado se establece al crear el certificado. Para obtener más información, vea Permitir que un extremo de creación de reflejo de la base de datos utilice certificados para las conexiones salientes (Transact-SQL). Administre con cuidado los certificados que utilice.

Una instancia de servidor utiliza la clave privada de su propio certificado para establecer su identidad al establecer una conexión. La instancia de servidor que recibe la solicitud de conexión utiliza la clave pública del certificado del remitente para autenticar la identidad de éste. Por ejemplo, considere dos instancias del servidor, Server_A y Server_B. Server_A utiliza su clave privada para cifrar el encabezado de conexión antes de enviar una solicitud de conexión a Server_B. Server_B utiliza la clave pública del certificado de Server_A para descifrar el encabezado de conexión. Si el encabezado descifrado es correcto, Servidor_B sabe que el encabezado fue cifrado por Servidor_A y la conexión se autentica. Si el encabezado descifrado es incorrecto, Servidor_B sabe que la solicitud de conexión no es auténtica y rechaza la conexión.

Cifrado de datos

De manera predeterminada, un extremo de creación de reflejo de la base de datos requiere el cifrado de datos enviados en conexiones de creación de reflejo. En este caso, solo se puede conectar el extremo a extremos que también utilicen cifrado. A menos que pueda garantizar que su red es segura, se recomienda requerir cifrado para las conexiones de creación de reflejo de la base de datos. Sin embargo, puede deshabilitar el cifrado o hacerlo compatible, pero no obligatorio. Si se deshabilita el cifrado, los datos no se cifran nunca y el extremo no se puede conectar a otro extremo que requiera cifrado. Si se admite cifrado, los datos solo se cifran si el extremo opuesto admite o requiere cifrado.

Nota:

Los extremos de creación de reflejo creados mediante SQL Server Management Studio se crean con cifrado obligatorio o deshabilitado. Para cambiar la configuración de cifrado a SUPPORTED, utilice la instrucción Transact-SQL ALTER ENDPOINT. Para obtener más información, vea ALTER ENDPOINT (Transact-SQL).

De manera opcional, puede controlar los algoritmos de cifrado que utiliza un extremo si especifica uno de los siguientes valores para la opción ALGORITHM en un instrucción CREATE ENDPOINT o ALTER ENDPOINT:

Valor ALGORITHM Descripción
RC4 Especifica que el extremo debe usar el algoritmo RC4. Este es el valor predeterminado.

** Advertencia ** El algoritmo RC4 está en desuso. Esta característica se quitará en una versión futura de SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. Se recomienda utilizar AES.
AES Especifica que el extremo debe usar el algoritmo AES.
AES RC4 Especifica que los dos extremos negociarán un algoritmo de cifrado con este extremo, dando preferencia al algoritmo AES.
RC4 AES Especifica que los dos extremos negociarán un algoritmo de cifrado con este extremo, dando preferencia al algoritmo RC4.

Si los extremos de conexión especifican estos dos algoritmos en distintas órdenes, el extremo que acepte la conexión gana.

Nota:

El algoritmo RC4 se admite únicamente por razones de compatibilidad con versiones anteriores. El material nuevo solo se puede cifrar con RC4 o RC4_128 cuando la base de datos tenga el nivel de compatibilidad 90 o 100. (No se recomienda). Use un algoritmo más reciente como uno de los algoritmos AES en su lugar. En SQL Server 2012 (11.x) y versiones posteriores, el material cifrado con RC4 o RC4_128 se puede descifrar en cualquier nivel de compatibilidad.

Aunque es notablemente más rápido que AES, RC4 es un algoritmo relativamente débil, mientras que AES es un algoritmo relativamente fuerte. Por tanto, se recomienda utilizar el algoritmo AES.

Para obtener más información sobre la sintaxis de Transact-SQL para especificar el cifrado, vea CREATE ENDPOINT (Transact-SQL).

Related Tasks

Para configurar la seguridad en el transporte para un extremo de creación de reflejo de la base de datos

Consulte también

Elegir un algoritmo de cifrado
ALTER ENDPOINT (Transact-SQL)
DROP ENDPOINT (Transact-SQL)
Centro de seguridad para el Motor de base de datos de SQL Server y Azure SQL Database
Administrar los metadatos cuando una base de datos pasa a estar disponible en otra instancia de servidor (SQL Server)
El extremo de creación de reflejo de la base de datos (SQL Server)
sys.database_mirroring_endpoints (Transact-SQL)
sys.dm_db_mirroring_connections (Transact-SQL)
Solucionar problemas de configuración de creación de reflejo de la base de datos (SQL Server)
Solucionar problemas de configuración de grupos de disponibilidad AlwaysOn (SQL Server)