예: 인증서를 사용하여 데이터베이스 미러링 설정(Transact-SQL)Example: Setting Up Database Mirroring Using Certificates (Transact-SQL)

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse 이 예에서는 인증서 기반 인증을 사용하여 데이터베이스 미러링 세션을 만드는 데 필요한 모든 단계를 보여 줍니다. This example shows all the stages required to create a database mirroring session using certificate-based authentication. 이 항목의 예에서는 Transact-SQLTransact-SQL을 사용합니다.The examples in this topic use Transact-SQLTransact-SQL. 네트워크 보안을 보장할 수 없는 경우 데이터베이스 미러링 연결에 암호화를 사용하는 것이 좋습니다.Unless you can guarantee that your network is secure, we recommend that you use encryption for database mirroring connections.

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

예제Example

다음 예에서는 HOST_A에 있는 한 파트너에서 실행되어야 하는 단계를 보여 줍니다.The following example demonstrates what must be done on one partner that resides on HOST_A. 이 예에서 파트너 2개는 컴퓨터 시스템 3대의 기본 서버 인스턴스입니다.In this example, the two partners are the default server instances on three computer systems. 이 중 두 서버 인스턴스는 트러스트되지 않은 Windows 도메인에서 실행되므로 인증서 기반 인증이 필요합니다.The two server instances run in nontrusted Windows domains, so certificate-based authentication is required.

HOST_A는 초기 주 역할을 맡고 HOST_B는 미러 역할을 맡습니다.The initial principal role is taken by HOST_A, and the mirror role is taken by HOST_B.

인증서를 사용하여 데이터베이스 미러링을 설정하는 작업은 4개의 일반적인 단계로 이루어지며, 이 예에서는 이 중 3개, 즉 1, 2, 4단계를 보여 줍니다.Setting up database mirroring using certificates involves four general stages, of which three stages—1, 2, and 4—are demonstrated by this example. 이러한 단계는 다음과 같습니다.These stages are as follows:

  1. 아웃바운드 연결 구성Configuring Outbound Connections

    이 예에서는 다음 작업을 위한 단계를 보여 줍니다.This example shows the steps for:

    1. 아웃바운드 연결에 대한 Host_A 구성Configuring Host_A for outbound connections.

    2. 아웃바운드 연결에 대한 Host_B 구성Configuring Host_B for outbound connections.

      이 데이터베이스 미러링 설정 단계에 대한 자세한 내용은 데이터베이스 미러링 끝점의 아웃바운드 연결에 대한 인증서 사용 허용(Transact-SQL)을 사용합니다.For information about this stage of setting up database mirroring, see Allow a Database Mirroring Endpoint to Use Certificates for Outbound Connections (Transact-SQL).

  2. 인바운드 연결 구성Configuring Inbound Connections

    이 예에서는 다음 작업을 위한 단계를 보여 줍니다.This example shows the steps for:

    1. 인바운드 연결에 대한 Host_A 구성Configuring Host_A for inbound connections.

    2. 인바운드 연결에 대한 Host_B 구성Configuring Host_B for inbound connections.

      이 데이터베이스 미러링 설정 단계에 대한 자세한 내용은 데이터베이스 미러링 끝점의 인바운드 연결에 대한 인증서 사용 허용(Transact-SQL)을 사용합니다.For information about this stage of setting up database mirroring, see Allow a Database Mirroring Endpoint to Use Certificates for Inbound Connections (Transact-SQL).

  3. 미러 데이터베이스 만들기Creating the Mirror Database

    미러 데이터베이스를 만드는 방법에 대한 자세한 내용은 미러 데이터베이스의 미러링 준비(SQL Server)을 사용합니다.For information on how to create a mirror database, see Prepare a Mirror Database for Mirroring (SQL Server).

  4. 미러링 파트너 구성Configuring the Mirroring Partners

아웃바운드 연결 구성Configuring Outbound Connections

아웃바운드 연결에 대한 Host_A를 구성하려면To configure Host_A for outbound connections

  1. 필요한 경우 master 데이터베이스에 데이터베이스 마스터 키를 만듭니다.On the master database, create the database master key, if needed.

    USE master;  
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1_Strong_Password!>';  
    GO  
    
  2. 이 서버 인스턴스에 대한 인증서를 만듭니다.Make a certificate for this server instance.

    USE master;  
    CREATE CERTIFICATE HOST_A_cert   
       WITH SUBJECT = 'HOST_A certificate';  
    GO  
    
  3. 인증서를 사용하여 서버 인스턴스에 대한 미러링 끝점을 만듭니다.Create a mirroring endpoint for server instance using the certificate.

    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. HOST_A 인증서를 백업하여 HOST_B 시스템에 복사합니다.Back up the HOST_A certificate, and copy it to other system, HOST_B.

    BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\HOST_A_cert.cer';  
    GO  
    
  5. 안전한 복사 방법을 사용하여 C:\HOST_A_cert.cer을 HOST_B로 복사합니다.Using any secure copy method, copy C:\HOST_A_cert.cer to HOST_B.

    아웃바운드 연결에 대한 Host_B를 구성하려면To configure Host_B for outbound connections

  6. 필요한 경우 master 데이터베이스에 데이터베이스 마스터 키를 만듭니다.On the master database, create the database master key, if needed.

    USE master;  
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>';  
    GO  
    
  7. HOST_B 서버 인스턴스에 대한 인증서를 만듭니다.Make a certificate on the HOST_B server instance.

    CREATE CERTIFICATE HOST_B_cert   
       WITH SUBJECT = 'HOST_B certificate for database mirroring';  
    GO  
    
  8. HOST_B 서버 인스턴스에 대한 미러링 끝점을 만듭니다.Create a mirroring endpoint for the server instance on 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  
    
  9. HOST_B 인증서를 백업합니다.Back up HOST_B certificate.

    BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer';  
    GO   
    
  10. 안전한 복사 방법을 사용하여 C:\HOST_B_cert.cer을 HOST_A로 복사합니다.Using any secure copy method, copy C:\HOST_B_cert.cer to HOST_A.

    자세햔 내용은 데이터베이스 미러링 끝점의 아웃바운드 연결에 대한 인증서 사용 허용(Transact-SQL)을 사용합니다.For more information, see Allow a Database Mirroring Endpoint to Use Certificates for Outbound Connections (Transact-SQL).

    [주요 예제][Top of Example]

인바운드 연결 구성Configuring Inbound Connections

인바운드 연결에 대한 Host_A를 구성하려면To configure Host_A for inbound connections

  1. HOST_A에서 HOST_B에 대한 로그인을 만듭니다.Create a login on HOST_A for HOST_B.

    USE master;  
    CREATE LOGIN HOST_B_login WITH PASSWORD = '1Sample_Strong_Password!@#';  
    GO  
    
  2. --해당 로그인의 사용자를 만듭니다.--Create a user for that login.

    CREATE USER HOST_B_user FOR LOGIN HOST_B_login;  
    GO  
    
  3. --인증서를 사용자와 연결합니다.--Associate the certificate with the user.

    CREATE CERTIFICATE HOST_B_cert  
       AUTHORIZATION HOST_B_user  
       FROM FILE = 'C:\HOST_B_cert.cer'  
    GO  
    
  4. 해당 원격 미러링 끝점에 대한 로그인에 CONNECT 권한을 부여합니다.Grant CONNECT permission on the login for the remote mirroring endpoint.

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

    인바운드 연결에 대한 Host_B를 구성하려면To configure Host_B for inbound connections

  5. HOST_B에서 HOST_A에 대한 로그인을 만듭니다.Create a login on HOST_B for HOST_A.

    USE master;  
    CREATE LOGIN HOST_A_login WITH PASSWORD = '=Sample#2_Strong_Password2';  
    GO  
    
  6. 해당 로그인의 사용자를 만듭니다.Create a user for that login.

    CREATE USER HOST_A_user FOR LOGIN HOST_A_login;  
    GO  
    
  7. 인증서를 사용자와 연결합니다.Associate the certificate with the user.

    CREATE CERTIFICATE HOST_A_cert  
       AUTHORIZATION HOST_A_user  
       FROM FILE = 'C:\HOST_A_cert.cer'  
    GO  
    
  8. 해당 원격 미러링 끝점에 대한 로그인에 CONNECT 권한을 부여합니다.Grant CONNECT permission on the login for the remote mirroring endpoint.

    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 setup steps to configure the witness for outbound and inbound connections. 미러링 모니터를 사용하는 경우 인바운드 연결을 설정하려면 두 파트너 모두에서 미러링 모니터에 대해 그리고 미러링 모니터에서 두 파트너 모두에 대해 로그인과 사용자를 설정해야 합니다.Setting up the inbound connections when a witness is involved requires that you set up logins and users for the witness on both of the partners and for both partners on the witness.

자세햔 내용은 데이터베이스 미러링 끝점의 인바운드 연결에 대한 인증서 사용 허용(Transact-SQL)을 사용합니다.For more information, see Allow a Database Mirroring Endpoint to Use Certificates for Inbound Connections (Transact-SQL).

[주요 예제][Top of Example]

미러 데이터베이스 만들기Creating the Mirror Database

미러 데이터베이스를 만드는 방법에 대한 자세한 내용은 미러 데이터베이스의 미러링 준비(SQL Server)을 사용합니다.For information on how to create a mirror database, see Prepare a Mirror Database for Mirroring (SQL Server).

미러링 파트너 구성Configuring the Mirroring Partners

  1. HOST_B의 미러 서버 인스턴스에서 HOST_A의 서버 인스턴스를 초기 주 서버 인스턴스로 만들어 파트너로 설정합니다.On the mirror server instance on HOST_B, set the server instance on HOST_A as the partner (making it the initial principal server instance). TCP://HOST_A.Mydomain.Corp.Adventure-Works``.com:7024를 유효한 네트워크 주소로 대체합니다.Substitute a valid network address for TCP://HOST_A.Mydomain.Corp.Adventure-Works``.com:7024. 자세햔 내용은 서버 네트워크 주소 지정(데이터베이스 미러링)을 사용합니다.For more information, see Specify a Server Network Address (Database Mirroring).

    --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. HOST_A의 주 서버 인스턴스에서 HOST_B의 서버 인스턴스를 초기 미러 서버 인스턴스로 만들어 파트너로 설정합니다.On the principal server instance on HOST_A, set the server instance on HOST_B as the partner (making it the initial mirror server instance). TCP://HOST_B.Mydomain.Corp.Adventure-Works.com:7024를 유효한 네트워크 주소로 대체합니다.Substitute a valid network address for 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. 이 예에서는 세션이 고성능 모드에서 실행될 것으로 가정합니다.This example assumes that the session will be running in high-performance mode. 고성능 모드에 맞게 이 세션을 구성하려면 HOST_A의 주 서버 인스턴스에서 트랜잭션 보안을 OFF로 설정합니다.To configure this session for high-performance mode, on the principal server instance (on HOST_A), set transaction safety to OFF.

    --Change to high-performance mode by turning off transacton safety.  
    ALTER DATABASE AdventureWorks   
        SET PARTNER SAFETY OFF  
    GO  
    

    참고

    자동 장애 조치를 지원하는 보호 우선 모드에서 실행하려면 트랜잭션 보안을 FULL(기본 설정)로 설정한 채로 두고 두 번째 SET PARTNER 'partner_server' 문을 실행한 후 즉시 미러링 모니터를 추가합니다.If you intend to run in high-safety mode with automatic failover, leave transaction safety set to FULL (the default setting) and add the witness as soon as possible after executing the second SET PARTNER 'partner_server' statement. 먼저 아웃바운드 및 인바운드 연결에 대한 미러링 모니터를 구성해야 합니다.Note that the witness must first be configured for outbound and inbound connections.

    [주요 예제][Top of Example]

관련 태스크Related Tasks

참고 항목See Also

데이터베이스 미러링 및 Always On 가용성 그룹에 대한 전송 보안(SQL Server) Transport Security for Database Mirroring and Always On Availability Groups (SQL Server)
서버 네트워크 주소 지정(데이터베이스 미러링) Specify a Server Network Address (Database Mirroring)
데이터베이스 미러링 끝점(SQL Server) The Database Mirroring Endpoint (SQL Server)
데이터베이스 미러링 끝점에 대한 인증서 사용(Transact-SQL) Use Certificates for a Database Mirroring Endpoint (Transact-SQL)
ALTER DATABASE(Transact-SQL) ALTER DATABASE (Transact-SQL)
SQL Server 데이터베이스 엔진 및 Azure SQL Database에 대한 보안 센터Security Center for SQL Server Database Engine and Azure SQL Database