Creación de reflejo de base de datos: usar certificados para las conexiones entrantesDatabase Mirroring - Use Certificates for Inbound Connections

Se aplica a:Applies to: síSQL ServerSQL Server (todas las versiones admitidas) yesSQL ServerSQL Server (all supported versions) Se aplica a:Applies to: síSQL ServerSQL Server (todas las versiones admitidas) yesSQL ServerSQL Server (all supported versions)

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.This topic describes the steps for configuring server instances to use certificates to authenticate inbound connections for database mirroring. Antes de poder configurar las conexiones entrantes, deberá configurar las conexiones salientes en cada una de las instancias del servidor.Before you can set up inbound connections, you must configure outbound connections on each server instance. 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 salientes (Transact-SQL).For more information, see Allow a Database Mirroring Endpoint to Use Certificates for Outbound Connections (Transact-SQL).

El proceso de configuración de conexiones entrantes implica los siguientes pasos generales:The process of configuring inbound connections, involves the following general steps:

  1. Crear un inicio de sesión para otro sistema.Create a login for other system.

  2. Cree un usuario para dicho inicio de sesión.Create a user for that login.

  3. Obtenga el certificado para el extremo de reflejo de la otra instancia de servidor.Obtain the certificate for the mirroring endpoint of the other server instance.

  4. Asociar el certificado al usuario creado en el paso 2.Associate the certificate with the user created in step 2.

  5. Conceda el permiso CONNECT para el inicio de sesión para el extremo de reflejo.Grant CONNECT permission on the login for that mirroring endpoint.

Si existe un testigo, también debe configurar conexiones de entrada para él.If there is a witness, you must also set up inbound connections for it. Esto requiere la configuración de inicios de sesión, usuarios y certificados para el testigo en los dos asociados y viceversa.This requires setting up logins, users, and certificates for the witness on both of the partners, and vice versa.

En el siguiente procedimiento se describen estos pasos detalladamente.The following procedure describes these steps in detail. Para cada paso, el procedimiento proporciona un ejemplo para configurar una instancia del servidor en un sistema denominado HOST_A.For each step, the procedure provides an example for configuring a server instance on a system named HOST_A. En la sección Ejemplo anexa se muestran los mismos pasos para otra instancia del servidor en un sistema denominado HOST_B.The accompanying Example section demonstrates the same steps for another server instance on a system named HOST_B.

Para configurar instancias del servidor para conexiones entrantes de creación de reflejo (en HOST_A)To configure server instances for inbound mirroring connections (on HOST_A)

  1. Cree un inicio de sesión para el otro sistema.Create a login for the other system.

    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.The following example creates a login for the system, HOST_B, in the master database of the server instance on HOST_A; in this example, the login is named HOST_B_login. Sustituya la contraseña de ejemplo por su propia contraseña.Substitute a password of your own for the sample password.

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

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

    Para ver los inicios de sesión en esta instancia del servidor, puede utilizar la siguiente instrucción Transact-SQLTransact-SQL:To view the logins on this server instance, you can use the following Transact-SQLTransact-SQL statement:

    SELECT * FROM sys.server_principals  
    

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

  2. Cree un usuario para dicho inicio de sesión.Create a user for that login.

    En el siguiente ejemplo se crea un usuario, HOST_B_user, para el inicio de sesión creado en el paso anterior.The following example creates a user, HOST_B_user, for the login created in the preceding step.

    USE master;  
    CREATE USER HOST_B_user FOR LOGIN HOST_B_login;  
    GO  
    

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

    Para ver los usuarios en esta instancia del servidor, puede utilizar la siguiente instrucción Transact-SQLTransact-SQL:To view the users on this server instance, you can use the following Transact-SQLTransact-SQL statement:

    SELECT * FROM sys.sysusers;  
    

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

  3. Obtenga el certificado para el extremo de reflejo de la otra instancia de servidor.Obtain the certificate for the mirroring endpoint of the other server instance.

    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.If you have not already done so when configuring outbound connections, obtain a copy of the certificate for the mirroring endpoint of the remote server instance. 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 creación de reflejo de la base de datos utilice certificados para las conexiones salientes (Transact-SQL).To do this, back up the certificate on that server instance as described in Allow a Database Mirroring Endpoint to Use Certificates for Outbound Connections (Transact-SQL). Cuando copie un certificado en otro sistema, utilice un método de copia seguro.When copying a certificate to another system, use a secure copy method. Tenga mucho cuidado de mantener todos sus certificados protegidos.Be extremely careful to keep all of your certificates secure.

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

  4. Asociar el certificado al usuario creado en el paso 2.Associate the certificate with the user created in step 2.

    En el siguiente ejemplo se asocia el certificado de HOST_B al usuario de HOST_A.The following example, associates the certificate of HOST_B with its user on 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).For more information, see CREATE CERTIFICATE (Transact-SQL).

    Para ver los certificados de esta instancia del servidor, utilice la siguiente instrucción Transact-SQLTransact-SQL:To view the certificates on this server instance, use the following Transact-SQLTransact-SQL statement:

    SELECT * FROM sys.certificates  
    

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

  5. Conceda el permiso CONNECT para el inicio de sesión al extremo de creación de reflejo remoto.Grant CONNECT permission on the login for the remote mirroring endpoint.

    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-SQLTransact-SQL siguientes:For example, to grant permission on HOST_A to the remote server instance on HOST_B to connect to its local login-that is, to connect to HOST_B_login-use the following Transact-SQLTransact-SQL statements:

    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).For more information, see GRANT Endpoint Permissions (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.This completes setting up certificate authentication for HOST_B to log in to HOST_A.

Ahora tiene que seguir los pasos de salida de entrada equivalentes para HOST_A en HOST_B.You now need to perform the equivalent inbound steps for HOST_A on HOST_B. Estos pasos se muestran en la parte entrante del ejemplo en la sección Ejemplo a continuación.These steps are illustrated in the inbound portion of the example in the Example section, below.

EjemploExample

En el siguiente ejemplo se muestra la forma de configurar HOST_B para las conexiones entrantes.The following example demonstrates configuring HOST_B for inbound connections.

Nota

Este ejemplo usa un archivo de certificado que contiene el certificado HOST_A que se ha creado por un fragmento de código en 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).This example uses a certificate file containing the HOST_A certificate that is created by a code snippet in Allow a Database Mirroring Endpoint to Use Certificates for Outbound Connections (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 automática por error, debe repetir los mismos pasos de configuración para configurar el testigo de las conexiones entrantes y salientes.If you intend to run in high-safety mode with automatic failover, you must repeat the same set up steps to configure the witness for outbound and inbound connections.

Para obtener información sobre la creación de una base de datos reflejada, incluido un ejemplo de Transact-SQL, vea Preparar una base de datos reflejada para la creación de reflejo (SQL Server).For information on creating a mirror database, including a Transact-SQL example, see Prepare a Mirror Database for Mirroring (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).For a Transact-SQL example of establishing a high-performance mode session, see Example: Setting Up Database Mirroring Using Certificates (Transact-SQL).

Seguridad de .NET Framework.NET Framework Security

Cuando copie un certificado en otro sistema, utilice un método de copia seguro.When copying a certificate to another system, use a secure copy method. Tenga mucho cuidado de mantener todos sus certificados protegidos.Be extremely careful to keep all of your certificates secure.

Consulte tambiénSee Also

Seguridad de transporte para la creación de reflejo de la base de datos y grupos de disponibilidad AlwaysOn (SQL Server) Transport Security for Database Mirroring and Always On Availability Groups (SQL Server)
GRANT (permisos de punto de conexión de Transact-SQL) GRANT Endpoint Permissions (Transact-SQL)
Establecer una base de datos reflejada cifrada Set Up an Encrypted Mirror Database
El punto de conexión de creación de reflejo de la base de datos (SQL Server) The Database Mirroring Endpoint (SQL Server)
Solucionar problemas de configuración de creación de reflejo de la base de datos (SQL Server)Troubleshoot Database Mirroring Configuration (SQL Server)