데이터베이스 미러링 - 인바운드 연결에 대한 인증서 사용Database Mirroring - Use Certificates for Inbound Connections

적용 대상:Applies to: 예SQL ServerSQL Server(지원되는 모든 버전)yesSQL ServerSQL Server (all supported versions) 적용 대상:Applies to: 예SQL ServerSQL Server(지원되는 모든 버전)yesSQL ServerSQL Server (all supported versions)

이 항목에서는 인증서를 사용하여 데이터베이스 미러링의 인바운드 연결을 인증하도록 서버 인스턴스를 구성하는 단계에 대해 설명합니다.This topic describes the steps for configuring server instances to use certificates to authenticate inbound connections for database mirroring. 인바운드 연결을 설정하려면 먼저 각 서버 인스턴스에서 아웃바운드 연결을 구성해야 합니다.Before you can set up inbound connections, you must configure outbound connections on each server instance. 자세햔 내용은 데이터베이스 미러링 엔드포인트의 아웃바운드 연결에 대한 인증서 사용 허용(Transact-SQL)을 참조하세요.For more information, see Allow a Database Mirroring Endpoint to Use Certificates for Outbound Connections (Transact-SQL).

인바운드 연결 구성은 대개 다음과 같은 단계로 진행됩니다.The process of configuring inbound connections, involves the following general steps:

  1. 다른 시스템에 대한 로그인을 만듭니다.Create a login for other system.

  2. 해당 로그인의 사용자를 만듭니다.Create a user for that login.

  3. 다른 서버 인스턴스의 미러링 엔드포인트에 대한 인증서를 얻습니다.Obtain the certificate for the mirroring endpoint of the other server instance.

  4. 2단계에서 만든 사용자에 인증서를 연결합니다.Associate the certificate with the user created in step 2.

  5. 해당 미러링 엔드포인트에 대한 로그인에 CONNECT 권한을 부여합니다.Grant CONNECT permission on the login for that mirroring endpoint.

미러링 모니터가 있는 경우 그에 대한 인바운드 연결도 설정해야 합니다.If there is a witness, you must also set up inbound connections for it. 이렇게 하려면 양쪽 파트너 모두에서 미러링 모니터에 대한 로그인, 사용자 및 인증서를 설정해야 합니다.This requires setting up logins, users, and certificates for the witness on both of the partners, and vice versa.

다음 절차에서 이러한 단계를 자세히 설명합니다.The following procedure describes these steps in detail. 각 단계에서는 HOST_A라는 시스템에서 서버 인스턴스를 구성하는 예를 제공합니다.For each step, the procedure provides an example for configuring a server instance on a system named HOST_A. 예 섹션에서는 HOST_B라는 시스템에 또 다른 서버 인스턴스를 구성하는 동일한 단계를 보여 줍니다.The accompanying Example section demonstrates the same steps for another server instance on a system named HOST_B.

인바운드 미러링 연결을 위한 서버 인스턴스를 구성하려면(HOST_A)To configure server instances for inbound mirroring connections (on HOST_A)

  1. 다른 시스템에 대한 로그인을 만듭니다.Create a login for the other system.

    다음 예에서는 HOST_A에 있는 서버 인스턴스의 master 데이터베이스에서 HOST_B 시스템에 대한 로그인을 만듭니다. 이 예에서 로그인 이름은 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. 예제 암호를 자신의 암호로 대체합니다.Substitute a password of your own for the sample password.

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

    자세한 내용은 CREATE LOGIN(Transact-SQL)을 참조하세요.For more information, see CREATE LOGIN (Transact-SQL).

    이 서버 인스턴스에서 사용자를 보려면 다음 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  
    

    자세한 내용은 sys.server_principals(Transact-SQL)를 참조하세요.For more information, see sys.server_principals (Transact-SQL).

  2. 해당 로그인의 사용자를 만듭니다.Create a user for that login.

    다음 예에서는 이전 단계에서 만든 로그인에 대해 사용자 HOST_B_user를 만듭니다.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  
    

    자세한 내용은 CREATE USER(Transact-SQL)를 참조하세요.For more information, see CREATE USER (Transact-SQL).

    이 서버 인스턴스에서 로그인을 보려면 다음 Transact-SQLTransact-SQL 문을 실행합니다.To view the users on this server instance, you can use the following Transact-SQLTransact-SQL statement:

    SELECT * FROM sys.sysusers;  
    

    자세한 내용은 sys.sysusers(Transact-SQL)를 참조하세요.For more information, see sys.sysusers (Transact-SQL).

  3. 다른 서버 인스턴스의 미러링 엔드포인트에 대한 인증서를 얻습니다.Obtain the certificate for the mirroring endpoint of the other server instance.

    아웃바운드 연결을 구성할 때 아직 인증서를 가져오지 못했으면 원격 서버 인스턴스의 미러링 엔드포인트에 대한 인증서 사본을 얻습니다.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. 이렇게 하려면 데이터베이스 미러링 엔드포인트의 아웃바운드 연결에 대한 인증서 사용 허용 (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). 인증서를 다른 시스템으로 복사할 때는 안전한 복사 방법을 사용하세요.When copying a certificate to another system, use a secure copy method. 모든 인증서를 안전하게 보관하는 데 많은 주의를 기울여야 합니다.Be extremely careful to keep all of your certificates secure.

    자세한 내용은 BACKUP CERTIFICATE(Transact-SQL)를 참조하세요.For more information, see BACKUP CERTIFICATE (Transact-SQL).

  4. 2단계에서 만든 사용자에 인증서를 연결합니다.Associate the certificate with the user created in step 2.

    다음 예에서는 HOST_B의 인증서를 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  
    

    자세한 내용은 CREATE CERTIFICATE(Transact-SQL)를 참조하세요.For more information, see CREATE CERTIFICATE (Transact-SQL).

    이 서버 인스턴스에서 인증서를 보려면 다음 Transact-SQLTransact-SQL 문을 실행합니다.To view the certificates on this server instance, use the following Transact-SQLTransact-SQL statement:

    SELECT * FROM sys.certificates  
    

    자세한 내용은 sys.certificates(Transact-SQL)를 참조하세요.For more information, see sys.certificates (Transact-SQL).

  5. 해당 원격 미러링 엔드포인트에 대한 로그인에 CONNECT 권한을 부여합니다.Grant CONNECT permission on the login for the remote mirroring endpoint.

    예를 들어 HOST_B에 있는 원격 서버 인스턴스에 대해 HOST_A에서 로컬 로그인에 연결할 권한을 부여하려면 즉, HOST_B_login에 연결하려면 다음 Transact-SQLTransact-SQL 문을 사용합니다.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  
    

    자세한 내용은 GRANT 엔드포인트 사용 권한(Transact-SQL)을 참조하세요.For more information, see GRANT Endpoint Permissions (Transact-SQL).

이로써 HOST_B에서 HOST_A에 로그인하기 위한 인증서 인증 설정이 끝났습니다.This completes setting up certificate authentication for HOST_B to log in to HOST_A.

이제 HOST_B에서 HOST_A에 대한 같은 인바운드 단계를 수행해야 합니다.You now need to perform the equivalent inbound steps for HOST_A on HOST_B. 이러한 단계는 아래에 있는 예 섹션의 인바운드 부분 예에 설명되어 있습니다.These steps are illustrated in the inbound portion of the example in the Example section, below.

예제Example

다음 예에서는 인바운드 연결을 위한 HOST_B 구성을 보여 줍니다.The following example demonstrates configuring HOST_B for inbound connections.

注意

이 예제에서는 데이터베이스 미러링 엔드포인트의 아웃바운드 연결에 대한 인증서 사용 허용 (Transact-SQL )의 코드 조각으로 만든 HOST_A 인증서가 포함된 인증서 파일을 사용합니다.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  

자동 장애 조치(failover)를 지원하는 보호 우선 모드에서 실행하려는 경우 아웃바운드 및 인바운드 연결에 대한 미러링 모니터를 구성하기 위해 같은 설정 단계를 반복해야 합니다.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.

Transact-SQL 예제를 포함하여 미러 데이터베이스를 만드는 방법은 미러 데이터베이스의 미러링 준비(SQL Server)를 참조하세요.For information on creating a mirror database, including a Transact-SQL example, see Prepare a Mirror Database for Mirroring (SQL Server).

고성능 모드 세션을 설정하는 Transact-SQL 예제는 예제: 인증서를 사용하여 데이터베이스 미러링 설정(Transact-SQL)를 참조하세요.For a Transact-SQL example of establishing a high-performance mode session, see Example: Setting Up Database Mirroring Using Certificates (Transact-SQL).

.NET Framework 보안.NET Framework Security

인증서를 다른 시스템으로 복사할 때는 안전한 복사 방법을 사용하세요.When copying a certificate to another system, use a secure copy method. 모든 인증서를 안전하게 보관하는 데 많은 주의를 기울여야 합니다.Be extremely careful to keep all of your certificates secure.

참고 항목See Also

데이터베이스 미러링 및 Always On 가용성 그룹에 대한 전송 보안(SQL Server) Transport Security for Database Mirroring and Always On Availability Groups (SQL Server)
GRANT 엔드포인트 사용 권한(Transact-SQL) GRANT Endpoint Permissions (Transact-SQL)
암호화된 미러 데이터베이스 설정 Set Up an Encrypted Mirror Database
데이터베이스 미러링 엔드포인트(SQL Server) The Database Mirroring Endpoint (SQL Server)
데이터베이스 미러링 구성 문제 해결(SQL Server)Troubleshoot Database Mirroring Configuration (SQL Server)