Compartir vía


Reflejo de base de datos - Usar certificados para las conexiones entrantes

Se aplica a:SQL Server

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, consulte Permitir que un punto de conexión de reflejo de 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. Cree un usuario para dicho inicio de sesión.

  3. Obtenga el certificado para el punto de conexión de creación de reflejo de la otra instancia del servidor.

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

  5. Conceda permiso CONNECT al inicio de sesión para ese punto de conexión de creación de reflejo.

Si hay un testigo, también debe configurar conexiones entrantes para él. Esto requiere la configuración de usuarios, inicios de sesión y certificados para el testigo en ambos socios y viceversa.

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

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

  1. Cree 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. Reemplace <password> por una contraseña válida.

    USE master;  
    CREATE LOGIN HOST_B_login   
       WITH PASSWORD = '<password>';  
    GO  
    

    Para obtener más información, consulte 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. Cree 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, consulte 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. Obtenga el certificado para el punto de conexión de creación de reflejo de la otra instancia del servidor.

    Si todavía no lo ha hecho al configurar las conexiones salientes, obtenga una copia del certificado para el extremo de reflejo de la instancia de servidor remoto. Para ello, realice una copia de seguridad del certificado en esa instancia del servidor como se describe en Permitir que un punto de conexión de reflejo de bases 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 más información, consulte 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. Conceda el permiso CONNECT en el inicio de sesión para el punto de conexión de creación de reflejo remoto.

    Por ejemplo, para conceder permiso para 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), use las instrucciones Transact-SQL siguientes:

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

    Para obtener más información, vea GRANT (permisos de punto de conexión 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.

Ahora debe realizar los pasos de entrada equivalentes para HOST_A en HOST_B. Estos pasos se muestran en la parte entrante del ejemplo en la sección Ejemplo a continuación.

Ejemplo

En el siguiente ejemplo se muestra la forma de configurar HOST_B para las conexiones entrantes. Reemplace <password> por una contraseña válida.

Nota

Este ejemplo utiliza un archivo de certificado que contiene el certificado HOST_A, el cual se crea mediante un fragmento de código en Permitir que un punto de conexión de reflejo de base de datos utilice certificados para conexiones salientes (Transact-SQL).

USE master;  
--On HOST_B, create a login for HOST_A.  
CREATE LOGIN HOST_A_login WITH PASSWORD = '<password>';  
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.)  
--Associate 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 piensa ejecutarse en modo de alta seguridad con conmutación automática por error, debe repetir los mismos pasos de configuración para configurar el testigo para las conexiones salientes y entrantes.

Para obtener información sobre la creación de una base de datos reflejada, incluido un ejemplo de Transact-SQL, consulte Preparar una base de datos reflejada para reflejo (SQL Server).

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

Seguridad de .NET Framework

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

Consulte también

Seguridad de transporte para la creación de reflejo de la base de datos y los grupos de disponibilidad AlwaysOn (SQL Server)
GRANT (permisos de extremo de Transact-SQL)
Establecer una base de datos reflejada cifrada
El extremo de creación de reflejo de la base de datos (SQL Server)
Solucionar problemas de configuración de creación de reflejo de la base de datos (SQL Server)