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

En este tema se describen los pasos necesarios para configurar instancias del servidor que utilicen certificados para autenticar conexiones entrantes para la creación de reflejo de la base de datos. Antes de poder configurar las conexiones entrantes, deberá configurar las conexiones salientes en cada una de las instancias del servidor. 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).

El proceso de configuración de conexiones entrantes implica los siguientes pasos generales:

  1. Crear un inicio de sesión para otro sistema.
  2. Crear un usuario para dicho inicio de sesión.
  3. Obtener un certificado para el extremo de creación de reflejo de la otra instancia del servidor.
  4. Asociar el certificado al usuario creado en el paso 2.
  5. Conceder permiso CONNECT sobre el inicio de sesión a dicho extremo de reflejo.

Si hay un testigo, deberá configurar también las conexiones entrantes para dicho testigo. Esto implica la configuración de inicios de sesión, usuarios y certificados para el testigo en ambos asociados, y viceversa.

En el siguiente procedimiento se describen estos pasos detalladamente. Para cada uno de los pasos, el procedimiento proporciona un ejemplo para configurar una instancia del servidor en un sistema denominado HOST_A. En la sección Ejemplo asociada se muestran los mismos pasos para otra instancia del servidor en un sistema denominado HOST_B.

Para configurar instancias del servidor para conexiones entrantes de creación de reflejo (en HOST_A)

  1. Crear un inicio de sesión para el otro sistema.

    En el siguiente ejemplo se crea un inicio de sesión para el sistema HOST_B en la base de datos master de la instancia del servidor de HOST_A; en este ejemplo, el inicio de sesión se denomina HOST_B_login. Sustituya la contraseña de ejemplo por su propia contraseña.

    USE master;
    CREATE LOGIN HOST_B_login 
       WITH PASSWORD = '1Sample_Strong_Password!@#';
    GO
    

    Para obtener más información, vea CREATE LOGIN (Transact-SQL).

    Para ver los inicios de sesión en esta instancia del servidor, puede utilizar la siguiente instrucción Transact-SQL:

    SELECT * FROM sys.server_principals
    

    Para obtener más información, vea sys.server_principals (Transact-SQL).

  2. Crear un usuario para dicho inicio de sesión.

    En el siguiente ejemplo se crea un usuario, HOST_B_user, para el inicio de sesión creado en el paso anterior.

    USE master;
    CREATE USER HOST_B_user FOR LOGIN HOST_B_login;
    GO
    

    Para obtener más información, vea CREATE USER (Transact-SQL).

    Para ver los usuarios en esta instancia del servidor, puede utilizar la siguiente instrucción Transact-SQL:

    SELECT * FROM sys.sysusers;
    

    Para obtener más información, vea sys.sysusers (Transact-SQL).

  3. Obtener un certificado para el extremo de creación de reflejo de la otra instancia del servidor.

    Si todavía no lo ha hecho al configurar las conexiones entrantes, obtenga una copia del certificado para el extremo de creación de reflejo de la instancia de servidor. Para ello, realice una copia de seguridad del certificado en dicha instancia del servidor, tal y como se describe en Cómo permitir que la creación de reflejo de la base de datos utilice certificados para las conexiones salientes (Transact-SQL). Cuando copie un certificado en otro sistema, utilice un método de copia seguro. Tenga mucho cuidado de mantener todos sus certificados protegidos.

    Para obtener más información, vea BACKUP CERTIFICATE (Transact-SQL).

  4. Asociar el certificado al usuario creado en el paso 2.

    En el siguiente ejemplo se asocia el certificado de HOST_B al usuario de HOST_A.

    USE master;
    CREATE CERTIFICATE HOST_B_cert
       AUTHORIZATION HOST_B_user
       FROM FILE = 'C:\HOST_B_cert.cer'
    GO
    

    Para obtener más información, vea CREATE CERTIFICATE (Transact-SQL).

    Para ver los certificados de esta instancia del servidor, utilice la siguiente instrucción Transact-SQL:

    SELECT * FROM sys.certificates
    

    Para obtener más información, vea sys.certificates (Transact-SQL).

  5. Conceder permiso CONNECT sobre el inicio de sesión al extremo de creación de reflejo remoto.

    Por ejemplo, para conceder permiso sobre HOST_A a la instancia del servidor remoto de HOST_B para que se conecte a su inicio de sesión local (es decir, para que se conecte a HOST_B_login), utilice las siguientes instrucciones Transact-SQL:

    USE master;
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login];
    GO
    

    Para obtener más información, vea GRANT (permisos de extremo de Transact-SQL).

Este último paso completa el proceso de configuración de la autenticación del certificado para que HOST_B pueda iniciar sesión en HOST_A.

Llegados a este punto, tendrá que realizar los pasos equivalentes para las conexiones entrantes de HOST_A a HOST_B. Estos pasos se ilustran en la parte correspondiente a las conexiones entrantes del ejemplo, en la sección Ejemplo que se muestra a continuación.

Ejemplo

En el siguiente ejemplo se muestra la forma de configurar HOST_B para las conexiones entrantes.

[!NOTA] En este ejemplo se utiliza un archivo de certificado que contiene el certificado de HOST_A creado mediante un fragmento de código de Cómo permitir que la creación de reflejo de la base de datos utilice certificados para las conexiones salientes (Transact-SQL).

USE master;
--On HOST_B, create a login for HOST_A.
CREATE LOGIN HOST_A_login WITH PASSWORD = 'AStrongPassword!@#';
GO
--Create a user, HOST_A_user, for that login.
CREATE USER HOST_A_user FOR LOGIN HOST_A_login
GO
--Obtain HOST_A certificate. (See the note 
--   preceding this example.)
--Asscociate this certificate with the user, HOST_A_user.
CREATE CERTIFICATE HOST_A_cert
   AUTHORIZATION HOST_A_user
   FROM FILE = 'C:\HOST_A_cert.cer';
GO
--Grant CONNECT permission for the server instance on HOST_A.
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO HOST_A_login
GO

Si tiene planeado que la ejecución se realice en modo de seguridad alta 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.

Para obtener información sobre la creación de una base de datos reflejada, incluido un ejemplo de Transact-SQL, vea Cómo preparar una base de datos reflejada para la creación de reflejo (Transact-SQL).

Para obtener un ejemplo de Transact-SQL del establecimiento de una sesión en modo de alto rendimiento, vea Ejemplo: Configurar la creación de reflejo de la base de datos mediante certificados (Transact-SQL).

Seguridad

Al copiar un certificado en otro sistema, utilice un método de copia seguro. Tenga mucho cuidado de mantener todos sus certificados protegidos.

Vea también

Tareas

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
Establecer una base de datos reflejada cifrada
Extremo de creación de reflejo de base de datos
Solucionar problemas de configuración de la creación de reflejo de la base de datos

Otros recursos

GRANT (permisos de extremo de Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005