다음을 통해 공유


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

적용 대상: SQL Server

이 항목에서는 인증서를 사용하여 데이터베이스 미러링의 인바운드 연결을 인증하도록 서버 인스턴스를 구성하는 단계에 대해 설명합니다. 인바운드 연결을 설정하기 전에 각 서버 인스턴스에서 아웃바운드 연결을 구성해야 합니다. 자세한 내용은 데이터베이스 미러링 엔드포인트의 아웃바운드 연결에 대한 인증서 사용 허용(Transact-SQL)을 참조하세요.

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

  1. 다른 시스템에 대한 로그인을 만듭니다.

  2. 해당 로그인의 사용자를 만듭니다.

  3. 다른 서버 인스턴스의 미러링 엔드포인트에 대한 인증서를 가져옵니다.

  4. 인증서를 2단계에서 만든 사용자와 연결합니다.

  5. 해당 미러링 엔드포인트에 대한 로그인에 CONNECT 권한을 부여합니다.

미러링 모니터 서버가 있는 경우 인바운드 연결도 설정해야 합니다. 이렇게 하려면 파트너 둘 다에서 미러링 모니터에 대한 로그인, 사용자 및 인증서를 설정해야 하며 그 반대의 경우도 마찬가지입니다.

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

인바운드 미러링 연결을 위한 서버 인스턴스를 구성하려면(HOST_A)

  1. 다른 시스템에 대한 로그인을 만듭니다.

    다음 예제에서는 HOST_A 서버 인스턴스의 master 데이터베이스에 시스템 HOST_B에 대한 로그인을 만들며, 이 예제에서 로그인 이름은 HOST_B_login으로 지정됩니다. 사용자 고유의 암호를 샘플 암호로 대체합니다.

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

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

    이 서버 인스턴스에서 사용자를 보려면 다음 Transact-SQL 문을 실행합니다.

    SELECT * FROM sys.server_principals  
    

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

  2. 해당 로그인의 사용자를 만듭니다.

    다음 예에서는 이전 단계에서 만든 로그인에 대해 사용자 HOST_B_user를 만듭니다.

    USE master;  
    CREATE USER HOST_B_user FOR LOGIN HOST_B_login;  
    GO  
    

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

    이 서버 인스턴스에서 사용자를 보려면 다음 Transact-SQL 문을 실행합니다.

    SELECT * FROM sys.sysusers;  
    

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

  3. 다른 서버 인스턴스의 미러링 엔드포인트에 대한 인증서를 가져옵니다.

    아웃바운드 연결을 구성할 때 아직 인증서를 가져오지 못했으면 원격 서버 인스턴스의 미러링 엔드포인트에 대한 인증서 사본을 얻습니다. 이렇게 하려면 데이터베이스 미러링 엔드포인트의 아웃바운드 연결에 대한 인증서 사용 허용(Transact-SQL)에 설명된 대로 해당 서버 인스턴스의 인증서를 백업합니다. 인증서를 다른 시스템에 복사하는 경우 보안 복사 방법을 사용합니다. 모든 인증서를 안전하게 보관하는 데 많은 주의를 기울여야 합니다.

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

  4. 인증서를 2단계에서 만든 사용자와 연결합니다.

    다음 예에서는 HOST_B의 인증서를 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)를 참조하세요.

    이 서버 인스턴스에서 인증서를 보려면 다음 Transact-SQL 문을 실행합니다.

    SELECT * FROM sys.certificates  
    

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

  5. 원격 미러링 엔드포인트에 대한 로그인에 CONNECT 권한을 부여합니다.

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

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

    자세한 내용은 GRANT 엔드포인트 사용 권한(Transact-SQL)을 참조하세요.

이렇게 하면 HOST_A에 로그인할 HOST_B의 인증서 인증 설정이 완료됩니다.

이제 HOST_B에서 HOST_A에 대한 같은 인바운드 단계를 수행해야 합니다. 이러한 단계는 아래 예제 구역에 있는 예제의 인바운드 부분에 설명되어 있습니다.

예시

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

참고 항목

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

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

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

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

.NET Framework 보안

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

참고 항목

데이터베이스 미러링 및 Always On 가용성 그룹에 대한 전송 보안(SQL Server)
GRANT 엔드포인트 사용 권한(Transact-SQL)
암호화된 미러 데이터베이스 설정
데이터베이스 미러링 엔드포인트(SQL Server)
데이터베이스 미러링 구성 문제 해결(SQL Server)