다음을 통해 공유


방법: 인증서를 사용하여 Service Broker 네트워크 액세스 허용(Transact-SQL)

다른 인스턴스가 인증서 기반 Service Broker 전송 보안을 사용하여 메시지를 보낼 수 있도록 허용하려면 다른 인스턴스에 대한 사용자를 만들어서 이 인스턴스에 대한 인증서를 설치합니다.

인증서를 사용한 다른 인스턴스의 액세스를 허용하려면

  1. 신뢰할 수 있는 출처로부터 다른 인스턴스에 대한 인증서를 얻습니다. 이렇게 하려면 일반적으로 암호화된 전자 메일을 사용하여 인증서를 보내거나 플로피 디스크와 같은 물리적 미디어로 인증서를 전송해야 합니다.

    보안 정보보안 정보

    신뢰할 수 있는 출처에서 제공하는 인증서만 설치합니다.

  2. 로그인을 만듭니다.

  3. master 데이터베이스에서 로그인에 대한 사용자를 만듭니다.

  4. master 데이터베이스에서 다른 인스턴스에 대한 인증서를 설치합니다. 3단계에서 생성된 사용자가 인증서를 소유합니다.

  5. 로그인에 Service Broker 끝점에 대한 CONNECT 액세스 권한을 부여합니다.

  6. 로컬 인스턴스에서 Service Broker 전송 보안에 사용되는 인증서를 덤프합니다.

    보안 정보보안 정보

    전송 보안에 사용되는 인증서만 덤프합니다. 인증서와 연결된 개인 키는 덤프 또는 배포하지 마십시오.

  7. 다른 데이터베이스의 관리자에 인증서를 제공합니다. 원격 데이터베이스의 관리자는 위의 1-4단계를 사용하여 이 인증서를 설치합니다.

일단 각 인스턴스에서 액세스가 구성되면 전송 보안을 허용하도록 두 인스턴스의 끝점을 구성할 경우 두 인스턴스가 통신할 때 Service Broker 전송 보안이 사용됩니다.

USE master ;
GO

-- Create a login for the remote instance.

CREATE LOGIN RemoteInstanceLogin
    WITH PASSWORD = '#gh!3A%!1@f' ;
GO

-- Create a user for the login in the master database.

CREATE USER RemoteInstanceUser
    FOR LOGIN RemoteInstanceLogin ;
GO

-- Load the certificate from the file system. Notice that
-- the login owns the certificate.

CREATE CERTIFICATE RemoteInstanceCertificate
    AUTHORIZATION RemoteInstanceUser
    FROM FILE='C:\Certificates\AceBikeComponentsCertificate.cer' ;
GO
GRANT CONNECT ON ENDPOINT::ThisInstanceEndpoint to RemoteInstanceLogin ;
GO
-- Write the certificate from this instance
-- to the file system. This command assumes
-- that the certificate used by the Service Broker
-- endpoint is named TransportSecurity.

BACKUP CERTIFICATE TransportSecurity
    TO FILE = 'C:\Certificates\ThisInstanceCertificate.cer' ;
GO