다음을 통해 공유


1단원: 대상 데이터베이스 만들기

새 설치: 2007년 9월 15일

이 단원에서는 대상 데이터베이스를 만들고 시작자 데이터베이스에 대한 종속성이 없는 모든 Service Broker 대상 개체를 만드는 방법을 배웁니다. 이러한 단계는 데이터베이스 엔진의 대상 인스턴스와 같은 컴퓨터에서 실행되는 Management Studio 복사본에서 실행하십시오.

절차

Service Broker 끝점 만들기

  1. 쿼리 편집기 창에 다음 코드를 복사하여 붙여 넣습니다. 그런 다음 이를 실행하여 이 데이터베이스 엔진 인스턴스에 대한 Service Broker 끝점을 만듭니다. Service Broker 끝점은 Service Broker 메시지가 전송되는 네트워크 주소를 설정합니다. 이 끝점은 Service Broker 기본값인 TCP 포트 4022를 사용하며 데이터베이스 엔진의 원격 인스턴스가 Windows 인증 연결을 사용하여 메시지를 전송하도록 설정합니다.

    Windows 인증은 두 컴퓨터가 같은 도메인 또는 트러스트된 도메인에 있어야 작동합니다. 컴퓨터가 트러스트된 도메인에 있지 않으면 끝점에 대해 인증서 보안을 사용하십시오. 자세한 내용은 방법: Service Broker 전송 보안에 대한 인증서 만들기(Transact-SQL)를 참조하십시오.

    USE master;
    GO
    IF EXISTS (SELECT * FROM master.sys.endpoints
               WHERE name = N'InstTargetEndpoint')
         DROP ENDPOINT InstTargetEndpoint;
    GO
    CREATE ENDPOINT InstTargetEndpoint
    STATE = STARTED
    AS TCP ( LISTENER_PORT = 4022 )
    FOR SERVICE_BROKER (AUTHENTICATION = WINDOWS );
    GO
    

대상 데이터베이스, 마스터 키 및 사용자 만들기

  1. 쿼리 편집기 창에 다음 코드를 복사하여 붙여 넣습니다. CREATE MASTER KEY 문의 암호를 변경합니다. 그런 다음 코드를 실행하여 이 자습서에 사용할 대상 데이터베이스를 만듭니다. 기본적으로 새 데이터베이스의 ENABLE_BROKER 옵션은 활성화되어 있습니다. 코드는 암호와 및 원격 연결을 지원하는 데 사용되는 마스터 키 및 사용자도 만듭니다.

    USE master;
    GO
    IF EXISTS (SELECT * FROM sys.databases
               WHERE name = N'InstTargetDB')
         DROP DATABASE InstTargetDB;
    GO
    CREATE DATABASE InstTargetDB;
    GO
    USE InstTargetDB;
    GO
    CREATE MASTER KEY
           ENCRYPTION BY PASSWORD = N'<EnterStrongPassword1Here>';
    GO
    CREATE USER TargetUser WITHOUT LOGIN;
    GO
    

대상 인증서 만들기

  1. 쿼리 편집기 창에 다음 코드를 복사하여 붙여 넣습니다. BACKUP CERTIFICATE 문에 지정된 파일 이름을 사용자 시스템의 폴더를 참조하도록 변경합니다. 그런 다음 코드를 실행하여 메시지를 암호화하는 데 사용할 대상 인증서를 만듭니다. 지정한 폴더에는 사용자의 Windows 계정과 데이터베이스 엔진 인스턴스가 실행 중인 Windows 계정을 제외한 다른 계정의 액세스를 차단하는 권한이 있어야 합니다. 2단원의 경우 시작자 인스턴스에서 액세스할 수 있는 폴더로 InstTargetCertificate.cer 파일을 직접 복사해야 합니다.

    CREATE CERTIFICATE InstTargetCertificate 
         AUTHORIZATION TargetUser
         WITH SUBJECT = 'Target Certificate',
              EXPIRY_DATE = N'12/31/2010';
    
    BACKUP CERTIFICATE InstTargetCertificate
      TO FILE = 
    N'C:\storedcerts\$ampleSSBCerts\InstTargetCertificate.cer';
    GO
    

메시지 유형 만들기

  1. 쿼리 편집기 창에 다음 코드를 복사하여 붙여 넣은 다음 이를 실행하여 대화를 위한 메시지 유형을 만듭니다. 여기에서 지정하는 메시지 유형 이름 및 속성은 다음 단원에서 InstInitiatorDB에 만들 이름 및 속성과 동일해야 합니다.

    CREATE MESSAGE TYPE [//BothDB/ 2InstSample/RequestMessage]
           VALIDATION = WELL_FORMED_XML;
    CREATE MESSAGE TYPE [//BothDB/ 2InstSample/ReplyMessage]
           VALIDATION = WELL_FORMED_XML;
    GO
    

계약 만들기

  1. 쿼리 편집기 창에 다음 코드를 복사하여 붙여 넣습니다. 그런 다음 이를 실행하여 대화를 위한 계약을 만듭니다. 여기에서 지정하는 계약 이름 및 속성은 다음 단원에서 InstInitiatorDB에 만들 계약과 동일해야 합니다.

    CREATE CONTRACT [//BothDB/ 2InstSample/SimpleContract]
          ([//BothDB/ 2InstSample/RequestMessage]
             SENT BY INITIATOR,
           [//BothDB/ 2InstSample/ReplyMessage]
             SENT BY TARGET
          );
    GO
    

대상 큐 및 서비스 만들기

  1. 쿼리 편집기 창에 다음 코드를 복사하여 붙여 넣습니다. 그런 다음 이를 실행하여 대상에 사용될 큐 및 서비스를 만듭니다. CREATE SERVICE 문은 서비스를 InstTargetQueue와 연결하여 서비스로 전송되는 모든 메시지가 InstTargetQueue에 수신되도록 합니다. CREATE SERVICE는 또한 이전에 만든 //BothDB/ 2InstSample/SimpleContract를 사용하는 대화만 서비스를 대상 서비스로 사용할 수 있도록 합니다.

    CREATE QUEUE InstTargetQueue;
    
    CREATE SERVICE [//TgtDB/2InstSample/TargetService]
           AUTHORIZATION TargetUser
           ON QUEUE InstTargetQueue
           ([//BothDB/2InstSample/SimpleContract]);
    GO
    

다음 단계

이것으로 자습서에 사용할 데이터베이스를 성공적으로 만들었습니다. 다음 단원에서는 InstInitiatorDB를 만들고 Service Broker 대화의 시작자 끝을 지원하는 데 필요한 개체로 이를 구성합니다. 2단원: 시작자 데이터베이스 만들기를 참조하십시오.

참고 항목

관련 자료

BACKUP CERTIFICATE(Transact-SQL)
CREATE CERTIFICATE(Transact-SQL)
CREATE CONTRACT(Transact-SQL)
CREATE DATABASE(Transact-SQL)
CREATE ENDPOINT(Transact-SQL)
CREATE MASTER KEY(Transact-SQL)
CREATE MESSAGE TYPE(Transact-SQL)
CREATE QUEUE(Transact-SQL)
CREATE SERVICE(Transact-SQL)
CREATE USER(Transact-SQL)
Service Broker 대화 보안
대화(Conversation) 아키텍처
서비스 아키텍처

도움말 및 정보

SQL Server 2005 지원 받기