Lição 1: Criar o banco de dados de destino

Aplica-se a:SQL ServerAzure SQL Managed Instance

Nesta lição, você aprenderá a criar o banco de dados de destino e todos os objetos de destino do Service Broker que não têm dependências no banco de dados do iniciador. Execute estas etapas a partir de uma cópia do Management Studio em execução no mesmo computador que a instância de destino, o Mecanismo de Banco de Dados.

Procedures

Criar um ponto de extremidade do Service Broker

  • Copie e cole o código a seguir em uma janela do Editor de Consultas e execute-o para criar um ponto de extremidade do Service Broker para esta instância do Mecanismo de Banco de Dados. Um ponto de extremidade do Service Broker estabelece o endereço de rede para o qual as mensagens do Service Broker são enviadas. Esse ponto de extremidade usa o padrão do Service Broker da porta TCP 4022 e estabelece que as instâncias remotas do Mecanismo de Banco de Dados usarão conexões de Autenticação do Windows para enviar mensagens.

    A Autenticação do Windows funciona quando ambos os computadores estão no mesmo domínio ou domínios confiáveis. Se os computadores não estiverem em domínios confiáveis, use a segurança de certificado para os pontos de extremidade. Para obter mais informações, consulte Como criar certificados para segurança de transporte do Service Broker.

    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
    

Criar o banco de dados de destino, a chave mestra e o usuário

  • Copie e cole o código a seguir em uma janela do Editor de Consultas. Altere a senha no CREATE MASTER KEY extrato. Em seguida, execute o código para criar o banco de dados de destino usado para este tutorial. Por padrão, os novos bancos de dados têm a ENABLE_BROKER opção definida como ativada. O código também cria a chave mestra e o usuário que serão usados para suportar criptografia e conexões remotas.

    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
    

Criar o certificado de destino

  • Copie e cole o código a seguir em uma janela do Editor de Consultas. Altere o nome do arquivo especificado na BACKUP CERTIFICATE instrução para fazer referência a uma pasta no seu sistema. Em seguida, execute o código para criar o certificado de destino usado para criptografar mensagens. A pasta especificada deve ter permissões que impeçam o acesso de contas diferentes da sua conta do Windows e da conta do Windows na qual a instância do Mecanismo de Banco de Dados está sendo executada. Para a Lição 2, você deve copiar manualmente o arquivo InstTargetCertificate.cer para uma pasta que possa ser acessada a partir da instância do iniciador.

    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
    

Criar os tipos de mensagem

  • Copie e cole o código a seguir em uma janela do Editor de Consultas e execute-o para criar os tipos de mensagem para a conversa. Os nomes e propriedades do tipo de mensagem especificados aqui devem ser idênticos aos criados na InstInitiatorDB próxima lição.

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

Criar o contrato

  • Copie e cole o código a seguir em uma janela do Editor de Consultas e execute-o para criar o contrato para a conversa. O nome do contrato e as propriedades especificadas aqui devem ser idênticos ao contrato criado na InstInitiatorDB próxima lição.

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

Criar a fila de destino e o serviço

  • Copie e cole o código a seguir em uma janela do Editor de Consultas e execute-o para criar a fila e o serviço usados para o destino. A CREATE SERVICE instrução associa o serviço ao InstTargetQueue, para que todas as mensagens enviadas ao serviço sejam recebidas no InstTargetQueue. O CREATE SERVICE também especifica que somente conversas que usam o BothDB/ 2InstSample/SimpleContract criado anteriormente podem usar o serviço como um serviço de destino.

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

Próximo passo

Você criou com êxito os bancos de dados para o tutorial. Em seguida, crie e InstInitiatorDB configure com os objetos necessários para dar suporte ao final do iniciador de uma conversa do Service Broker.