Compartir a través de


Ejemplo: Configurar la creación de reflejo de la base de datos mediante certificados (Transact-SQL)

En este ejemplo se muestran todos los pasos necesarios para crear una sesión de creación de reflejo de la base de datos con un testigo 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 siguiente ejemplo se muestra lo que debe hacerse en un asociado que resida en HOST_A. En este ejemplo, los dos asociados son las instancias de servidor predeterminadas de los tres sistemas. 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.

En el ejemplo siguiente, HOST_A toma la función principal inicial y HOST_B toma la función de reflejo.

Configurar conexiones salientes

Para configurar Host_A para conexiones salientes
  1. En la base de datos master, cree la clave maestra de la base de datos si es necesaria.

    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1_Strong_Password!>';
    GO
    
  2. Cree un certificado para esta instancia de servidor.

    USE master;
    CREATE CERTIFICATE HOST_A_cert 
       WITH SUBJECT = 'HOST_A certificate';
    GO
    
  3. 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
    
  4. 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
    
  5. Utilizando cualquier método de copia seguro, copie C:\HOST_A_cert.cer en HOST_B.

Para configurar Host_B para conexiones salientes
  1. En la base de datos master, cree la clave maestra de la base de datos si es necesaria.

    USE master;
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>';
    GO
    
  2. Cree un certificado en la instancia de servidor HOST_B.

    CREATE CERTIFICATE HOST_B_cert 
       WITH SUBJECT = 'HOST_B certificate for database mirroring';
    GO
    
  3. 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
    
  4. Realice una copia de seguridad del certificado de HOST_B.

    BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer';
    GO 
    
  5. Utilizando cualquier método de copia seguro, copie C:\HOST_B_cert.cer en HOST_A.

Para obtener más información, vea Cómo permitir que la 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
  1. 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
    
  2. Cree un usuario para dicho inicio de sesión.

    CREATE USER HOST_B_user FOR LOGIN HOST_B_login;
    GO
    
  3. Asocie el certificado al usuario.

    CREATE CERTIFICATE HOST_B_cert
       AUTHORIZATION HOST_B_user
       FROM FILE = 'C:\HOST_B_cert.cer'
    GO
    
  4. Conceda el permiso CONNECT en 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
  1. 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
    
  2. Cree un usuario para dicho inicio de sesión.

    CREATE USER HOST_A_user FOR LOGIN HOST_A_login;
    GO
    
  3. Asocie el certificado al usuario.

    CREATE CERTIFICATE HOST_A_cert
       AUTHORIZATION HOST_A_user
       FROM FILE = 'C:\HOST_A_cert.cer'
    GO
    
  4. Conceda el permiso CONNECT en el inicio de sesión al extremo de creación de reflejo remoto.

    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];
    GO
    
ms191140.note(es-es,SQL.90).gifImportante:
Si tiene planeado que la ejecución se realice en modo de alta seguridad con conmutación por error automática, 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 Cómo permitir que la 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 información acerca de cómo crear una base de datos reflejada, vea Cómo preparar una base de datos reflejada para la creación de reflejo (Transact-SQL).

Configure los asociados de creación de reflejo

  1. 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
    
  2. 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 principal): 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
    
  3. 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 transacton safety.
    ALTER DATABASE AdventureWorks 
        SET PARTNER SAFETY OFF
    GO
    

    [!NOTA] Si piensa realizar la ejecución en modo de alta seguridad con conmutación por error automática, 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 SET PARTNER 'partner_server'. Tenga en cuenta que primero se debe configurar el testigo para conexiones salientes y entrantes.

Vea también

Tareas

Cómo permitir que la creación de reflejo de la base de datos utilice certificados para las conexiones entrantes (Transact-SQL)
Cómo permitir que la creación de reflejo de la base de datos utilice certificados para las conexiones salientes (Transact-SQL)
Cómo preparar una base de datos reflejada para la creación de reflejo (Transact-SQL)

Conceptos

Seguridad en el transporte para la creación del reflejo de una base de datos
Especificar una dirección de red de servidor (creación de reflejo de la base de datos)
Extremo de creación de reflejo de base de datos
Usar certificados para la creación de reflejos de la base de datos
Preparar una base de datos reflejada para la creación de reflejo
Administrar la creación de reflejo de la base de datos (SQL Server Management Studio)
Administrar los metadatos cuando una base de datos pasa a estar disponible en otra instancia de servidor
Solucionar problemas de configuración de la creación de reflejo de la base de datos

Otros recursos

ALTER DATABASE (Transact-SQL)
Consideraciones de seguridad para SQL Server

Ayuda e información

Obtener ayuda sobre SQL Server 2005