데이터베이스 미러링 - 아웃바운드 연결에 대한 인증서 사용

적용 대상:SQL Server

이 항목에서는 인증서를 사용하여 데이터베이스 미러링의 아웃바운드 연결을 인증하도록 서버 인스턴스를 구성하는 단계에 대해 설명합니다. 인바운드 연결을 설정하려면 먼저 아웃바운드 연결 구성을 수행해야 합니다.

참고 항목

서버 인스턴스의 모든 미러링 연결은 단일 데이터베이스 미러링 엔드포인트을 사용하며, 엔드포인트를 생성할 때 서버 인스턴스의 인증 방법을 지정해야 합니다.

아웃바운드 연결을 구성하는 프로세스에는 다음과 같은 일반적인 단계가 포함됩니다.

  1. master 데이터베이스에서 데이터베이스 마스터 키를 만듭니다.

  2. master 데이터베이스에서 서버 인스턴스에 암호화된 인증서를 만듭니다.

  3. 인증서를 사용하여 서버 인스턴스에 대한 엔드포인트를 만듭니다.

  4. 인증서를 파일에 백업하고 다른 시스템 또는 시스템들에 안전하게 복사합니다.

각 파트너 및 미러링 모니터 서버가 있다면 그에 대해 이러한 단계를 완료해야 합니다.

다음 절차에서는 이러한 단계를 자세히 설명합니다. 각 단계에 대해 이 절차는 HOST_A라는 시스템에서 서버 인스턴스를 구성하는 예제를 제공합니다. 함께 제공되는 예제 구역에서는 HOST_B라는 시스템의 다른 서버 인스턴스에 대해 동일한 단계를 보여 줍니다.

절차

아웃바운드 미러링 연결을 위한 서버 인스턴스 구성 방법(HOST_A에)

  1. master 데이터베이스에 없는 경우 데이터베이스 마스터 키를 만듭니다. 데이터베이스의 기존 키를 보려면 sys.symmetric_keys 카탈로그 뷰를 사용합니다.

    데이터베이스 마스터 키를 만들려면 다음 Transact-SQL 명령을 사용합니다.

    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1_Strong_Password!>';  
    GO  
    

    고유하고 강력한 암호를 사용하고 안전한 장소에 기록합니다.

    자세한 내용은 CREATE MASTER KEY(Transact-SQL)데이터베이스 마스터 키 만들기를 참조하세요.

  2. master 데이터베이스에서 데이터베이스 미러링을 위한 아웃바운드 연결에 사용할 암호화된 인증서를 서버 인스턴스에 만듭니다.

    예를 들어 HOST_A 시스템의 인증서를 만들려면 다음 코드를 사용합니다.

    Important

    인증서를 일 년 이상 사용하려는 경우 CREATE CERTIFICATE 문의 EXPIRY_DATE 옵션을 사용하여 UTC 시간으로 만료 날짜를 지정합니다. 또한 SQL Server Management Studio를 사용하여 인증서 만료 시 경고를 표시하는 정책 기반 관리 규칙을 만드는 것이 좋습니다. 정책 관리 새 조건 만들기 대화 상자를 사용하여 인증서 패싯의 @ExpirationDate 필드에 이 규칙을 만듭니다. 자세한 내용은 정책 기반 관리를 사용한 서버 관리SQL Server 보호를 참조하세요.

    USE master;  
    CREATE CERTIFICATE HOST_A_cert   
       WITH SUBJECT = 'HOST_A certificate for database mirroring',   
       EXPIRY_DATE = '11/30/2013';  
    GO  
    

    자세한 내용은 CREATE CERTIFICATE(Transact-SQL)를 참조하세요.

    master 데이터베이스에 있는 인증서를 보려면 다음 Transact-SQL 문을 사용합니다.

    USE master;  
    SELECT * FROM sys.certificates;  
    

    자세한 내용은 sys.certificates(Transact-SQL)를 참조하세요.

  3. 각 서버 인스턴스에 데이터베이스 미러링 엔드포인트가 있는지 확인합니다.

    서버 인스턴스의 데이터베이스 미러링 엔드포인트가 이미 있으면 서버 인스턴스에서 설정하는 다른 모든 세션에 해당 엔드포인트를 다시 사용해야 합니다. 데이터베이스 미러링 엔드포인트가 서버 인스턴스에 있는지 결정하고 해당 구성을 보려면 다음 문을 사용합니다.

    SELECT name, role_desc, state_desc, connection_auth_desc, encryption_algorithm_desc   
       FROM sys.database_mirroring_endpoints;  
    

    엔드포인트가 없는 경우 아웃바운드 연결에 이 인증서를 사용하고 다른 시스템에서 검증을 위해 이 인증서의 자격 증명을 사용하는 엔드포인트를 만듭니다. 서버 인스턴스가 참여하는 모든 미러링 세션에서 사용되는 서버 전체 엔드포인트입니다.

    예를 들어 HOST_A의 예제 서버 인스턴스에 대한 미러링 엔드포인트를 만듭니다.

    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  
    

    자세한 내용은 CREATE ENDPOINT(TRANSACT-SQL)를 참조하세요.

  4. 인증서를 백업하고 다른 시스템 또는 시스템들에 복사합니다. 이는 다른 시스템에서 인바운드 연결을 구성하기 위해 필요합니다.

    BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\HOST_A_cert.cer';  
    GO  
    

    자세한 내용은 BACKUP CERTIFICATE(Transact-SQL)를 참조하세요.

    선택한 보안 방법을 사용하여 이 인증서를 복사합니다. 모든 인증서를 안전하게 보관하는 데 많은 주의를 기울여야 합니다.

이전 단계의 예제 코드는 HOST_A 아웃바운드 연결을 구성합니다.

이제 HOST_B에서 동일한 아웃바운드 단계를 수행해야 합니다. 이러한 단계는 다음 예 섹션에 설명되어 있습니다.

예시

다음 예에서는 아웃바운드 연결을 위한 HOST_B 구성을 보여 줍니다.

USE master;  
--Create the database Master Key, if needed.  
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>';  
GO  
-- Make a certifcate on HOST_B server instance.  
CREATE CERTIFICATE HOST_B_cert   
   WITH SUBJECT = 'HOST_B certificate for database mirroring',   
   EXPIRY_DATE = '11/30/2013';  
GO  
--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  
--Backup HOST_B certificate.  
BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer';  
GO   
--Using any secure copy method, copy C:\HOST_B_cert.cer to HOST_A.  

선택한 보안 방법을 사용하여 인증서를 다른 시스템에 복사합니다. 모든 인증서를 안전하게 보관하는 데 많은 주의를 기울여야 합니다.

Important

아웃바운드 연결을 설정한 후에는 다른 서버 인스턴스 또는 인스턴스들에 대해 각 서버 인스턴스에서 인바운드 연결을 구성해야 합니다. 자세한 내용은 데이터베이스 미러링 엔드포인트의 인바운드 연결에 대한 인증서 사용 허용(Transact-SQL)을 참조하세요.

Transact-SQL 예제를 포함하여 미러 데이터베이스를 만드는 방법은 미러 데이터베이스의 미러링 준비(SQL Server)를 참조하세요.

고성능 모드 세션을 설정하는 Transact-SQL 예제는 예제: 인증서를 사용하여 데이터베이스 미러링 설정(Transact-SQL)을 참조하세요.

.NET Framework 보안

네트워크 보안을 보장할 수 없는 경우에는 데이터베이스 미러링 연결에 암호화를 사용하는 것이 좋습니다.

인증서를 다른 시스템에 복사하는 경우 보안 복사 방법을 사용합니다.

참고 항목

암호화 알고리즘 선택
미러 데이터베이스의 미러링 준비(SQL Server)
ALTER ENDPOINT(Transact-SQL)
예제: 인증서를 사용하여 데이터베이스 미러링 설정(Transact-SQL)
데이터베이스 미러링 엔드포인트(SQL Server)
데이터베이스 미러링 구성 문제 해결(SQL Server)
암호화된 미러 데이터베이스 설정