Ejemplo: configurar la creación de reflejo de la base de datos con certificados (Transact-SQL)
Se aplica a: SQL Server
En este ejemplo se muestran todos los pasos necesarios para crear una sesión de creación de reflejo de la base de datos mediante la autenticación basada en certificados. En los ejemplos descritos en este tema se utiliza Transact-SQL. A menos que garantice que su red es segura, se recomienda utilizar el cifrado para las conexiones de creación de reflejo de la base de datos.
Cuando copie un certificado en otro sistema, utilice un método de copia seguro. Tenga mucho cuidado de mantener todos sus certificados protegidos.
Ejemplo
En el ejemplo siguiente se muestra lo que se debe hacer en un asociado que reside en el HOST_A. En este ejemplo, los dos asociados son las instancias de servidor predeterminadas en tres equipos. Las dos instancias de servidor se ejecutan en dominios de Windows que no son de confianza, por lo que se requiere la autenticación basada en certificados.
HOST_A adopta el rol principal inicial y HOST_B adopta el rol reflejado.
Configurar la creación de reflejo de la base de datos mediante certificados implica cuatro fases generales. En este ejemplo se muestran tres de ellas: 1, 2 y 4. Estas fases son las siguientes:
Configurar conexiones salientes
En este ejemplo muestran los pasos para:
Configurar Host_A para conexiones salientes.
Configurar Host_B para conexiones salientes.
Para obtener más información sobre esta fase de configuración de la creación de reflejo de la base de datos, vea Permitir que un punto de conexión de creación de reflejo de la base de datos utilice certificados para las conexiones salientes (Transact-SQL).
Configurar conexiones entrantes
En este ejemplo muestran los pasos para:
Configurar Host_A para conexiones entrantes.
Configurar Host_B para conexiones entrantes.
Para obtener más información sobre esta fase de configuración de la creación de reflejo de la base de datos, vea Permitir que un punto de conexión de creación de reflejo de la base de datos utilice certificados para las conexiones entrantes (Transact-SQL).
Crear la base de datos reflejada
Para obtener más información sobre cómo crear una base de datos reflejada, vea Preparar una base de datos reflejada para la creación de reflejo (SQL Server).
Configurar conexiones salientes
Para configurar Host_A para conexiones salientes
En la base de datos maestra, cree la clave maestra de la base de datos si es necesaria.
USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1_Strong_Password!>'; GO
Cree un certificado para esta instancia de servidor.
USE master; CREATE CERTIFICATE HOST_A_cert WITH SUBJECT = 'HOST_A certificate'; GO
Cree un extremo de creación de reflejo para la instancia de servidor mediante el certificado.
CREATE ENDPOINT Endpoint_Mirroring STATE = STARTED AS TCP ( LISTENER_PORT=7024 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE HOST_A_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL ); GO
Realice una copia de seguridad del certificado HOST_A y cópielo en el otro sistema, HOST_B.
BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\HOST_A_cert.cer'; GO
Utilizando cualquier método de copia seguro, copie C:\HOST_A_cert.cer en HOST_B.
Para configurar Host_B para conexiones salientes
En la base de datos maestra, cree la clave maestra de la base de datos si es necesaria.
USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>'; GO
Cree un certificado en la instancia de servidor HOST_B.
CREATE CERTIFICATE HOST_B_cert WITH SUBJECT = 'HOST_B certificate for database mirroring'; GO
Cree un extremo de creación de reflejo para la instancia de servidor en HOST_B.
CREATE ENDPOINT Endpoint_Mirroring STATE = STARTED AS TCP ( LISTENER_PORT=7024 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE HOST_B_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL ); GO
Realice una copia de seguridad del certificado de HOST_B.
BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer'; GO
Utilizando cualquier método de copia seguro, copie C:\HOST_B_cert.cer en HOST_A.
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).
Configurar conexiones entrantes
Para configurar Host_A para conexiones entrantes
Cree un inicio de sesión en HOST_A para HOST_B.
USE master; CREATE LOGIN HOST_B_login WITH PASSWORD = '1Sample_Strong_Password!@#'; GO
Cree un usuario para dicho inicio de sesión.
CREATE USER HOST_B_user FOR LOGIN HOST_B_login; GO
Asocie el certificado al usuario.
CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'C:\HOST_B_cert.cer' GO
Conceda el permiso CONNECT para el inicio de sesión al extremo de creación de reflejo remoto.
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login]; GO
Para configurar Host_B para conexiones entrantes
Cree un inicio de sesión en HOST_B para HOST_A.
USE master; CREATE LOGIN HOST_A_login WITH PASSWORD = '=Sample#2_Strong_Password2'; GO
Cree un usuario para dicho inicio de sesión.
CREATE USER HOST_A_user FOR LOGIN HOST_A_login; GO
Asocie el certificado al usuario.
CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = 'C:\HOST_A_cert.cer' GO
Conceda el permiso CONNECT para el inicio de sesión al extremo de creación de reflejo remoto.
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login]; GO
Importante
Si tiene planeado que la ejecución se realice en modo de alta seguridad con conmutación automática por error, debe repetir los mismos pasos de configuración para configurar el testigo de las conexiones entrantes y salientes. La configuración de conexiones de entrantes cuando un testigo está implicado requiere configurar inicios de sesión y usuarios para los testigos de los asociados y de los asociados del testigo.
Para obtener más información, vea Permitir que un punto de conexión de creación de reflejo de la base de datos utilice certificados para las conexiones entrantes (Transact-SQL).
Crear la base de datos reflejada
Para obtener más información sobre cómo crear una base de datos reflejada, vea Preparar una base de datos reflejada para la creación de reflejo (SQL Server).
Configurar los asociados de creación de reflejo
En la instancia del servidor reflejado en HOST_B, establezca la instancia de servidor en HOST_A como asociado (para convertirla en la instancia inicial del servidor principal): Sustituya una dirección de red válida por
TCP://HOST_A.Mydomain.Corp.Adventure-Works``.com:7024
. Para obtener más información, vea Especificar una dirección de red de servidor (Creación de reflejo de la base de datos).--At HOST_B, set server instance on HOST_A as partner (principal server): ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://HOST_A.Mydomain.Corp.Adventure-Works.com:7024'; GO
En la instancia del servidor principal en HOST_A, establezca la instancia de servidor en HOST_B como asociado (para convertirla en la instancia inicial del servidor reflejado): Sustituya una dirección de red válida por
TCP://HOST_B.Mydomain.Corp.Adventure-Works.com:7024
.--At HOST_A, set server instance on HOST_B as partner (mirror server). ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://HOST_B.Mydomain.Corp.Adventure-Works.com:7024'; GO
En este ejemplo se considera que la sesión se ejecutará en modo de alto rendimiento. Para configurar esta sesión para el modo de alto rendimiento, en la instancia del servidor principal (en HOST_A), establezca la seguridad de la transacción en OFF.
--Change to high-performance mode by turning off transaction safety. ALTER DATABASE AdventureWorks SET PARTNER SAFETY OFF GO
Nota
Si piensa realizar la ejecución en modo de alta seguridad con conmutación automática por error, deje la seguridad de la transacción en FULL (configuración predeterminada) y agregue el testigo en cuanto sea posible después de ejecutar la segunda instrucción 'partner_server' . Tenga en cuenta que primero se debe configurar el testigo para conexiones salientes y entrantes.
Related Tasks
Preparar una base de datos reflejada para la creación de reflejo (SQL Server)
Administración de inicios de sesión y trabajos tras la conmutación de roles (SQL Server)
Administrar los metadatos cuando una base de datos pasa a estar disponible en otra instancia de servidor (SQL Server) (SQL Server)
Solucionar problemas de configuración de creación de reflejo de la base de datos (SQL Server)
Consulte también
Seguridad de transporte para la creación de reflejo de la base de datos y grupos de disponibilidad AlwaysOn (SQL Server)
Especificar una dirección de red de servidor (creación de reflejo de la base de datos)
El extremo de creación de reflejo de la base de datos (SQL Server)
Usar certificados para un punto de conexión de creación de reflejo de la base de datos (Transact-SQL)
ALTER DATABASE (Transact-SQL)
Centro de seguridad para el Motor de base de datos de SQL Server y Azure SQL Database