SQL Server 2008 온라인 설명서(2009년 1월)
방법: 데이터베이스 미러링의 아웃바운드 연결에 대한 인증서 사용 허용(Transact-SQL)

이 항목에서는 인증서를 사용하여 데이터베이스 미러링의 아웃바운드 연결을 인증하도록 서버 인스턴스를 구성하는 단계를 설명합니다. 아웃바운드 연결을 구성한 후 인바운드 연결을 설정할 수 있습니다.

참고:
서버 인스턴스의 모든 미러링 연결에는 단일 데이터베이스 미러링 끝점이 사용됩니다. 따라서 단일 데이터베이스 미러링 끝점을 만들 때 서버 인스턴스의 인증 방법을 지정해야 합니다.

아웃바운드 연결 구성은 대개 다음과 같은 단계로 진행됩니다.

  1. master 데이터베이스에서 데이터베이스 마스터 키를 만듭니다.
  2. master 데이터베이스에서 서버 인스턴스의 암호화된 인증서를 만듭니다.
  3. 서버 인스턴스의 인증서를 사용하여 해당 인스턴스의 끝점을 만듭니다.
  4. 인증서를 파일에 백업하고 안전한 방법으로 다른 시스템에 복사합니다.

파트너와 미러링 모니터 서버 각각에 대해 이러한 단계를 수행해야 합니다.

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

  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 시스템의 인증서를 만들려면 다음 코드를 사용합니다.

    USE master;
    CREATE CERTIFICATE HOST_A_cert 
       WITH SUBJECT = 'HOST_A certificate for database mirroring';
    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';
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.

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

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

Transact-SQL 예를 포함하여 미러 데이터베이스를 만드는 방법은 방법: 미러 데이터베이스의 미러링 준비(Transact-SQL)를 참조하십시오.

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

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

인증서를 다른 시스템에 복사할 때는 안전한 복사 방법을 사용하십시오.

Posted by 시스템매니아
,