Lektion 1: Skapa måldatabasen

gäller för:SQL ServerAzure SQL Managed Instance

I den här lektionen lär du dig att skapa måldatabasen och alla Service Broker-målobjekt som inte har beroenden i initierardatabasen. Kör de här stegen från en kopia av Management Studio som körs på samma dator som målinstansen databasmotorn.

Procedures

Skapa en Service Broker-slutpunkt

  • Kopiera och klistra in följande kod i ett frågeredigerarefönster och kör den sedan för att skapa en Service Broker-slutpunkt för den här instansen av databasmotorn. En Service Broker-slutpunkt upprättar nätverksadressen till vilken Service Broker-meddelanden skickas. Den här slutpunkten använder Service Broker-standardvärdet för TCP-port 4022 och fastställer att fjärrinstanserna i databasmotorn använder Windows-autentiseringsanslutningar för att skicka meddelanden.

    Windows-autentisering fungerar när båda datorerna finns i samma domän eller betrodda domäner. Om datorerna inte finns i betrodda domäner använder du certifikatsäkerhet för slutpunkterna. Mer information finns i Så här skapar du certifikat för Service Broker-transportsäkerhet.

    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
    

Skapa måldatabasen, huvudnyckeln och användaren

  • Kopiera och klistra in följande kod i ett frågeredigerarefönster. Ändra lösenordet för -instruktionen CREATE MASTER KEY . Kör sedan koden för att skapa måldatabasen som används för den här självstudien. Som standard har ENABLE_BROKER nya databaser alternativet inställt på på. Koden skapar också huvudnyckeln och användaren som ska användas för kryptering och fjärranslutningar.

    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
    

Skapa målcertifikatet

  • Kopiera och klistra in följande kod i ett frågeredigerarefönster. Ändra filnamnet som anges i -instruktionen BACKUP CERTIFICATE så att det refererar till en mapp i systemet. Kör sedan koden för att skapa målcertifikatet som används för att kryptera meddelanden. Mappen som du anger ska ha behörigheter som förhindrar åtkomst från andra konton än ditt Windows-konto och Windows-kontot som instansen av databasmotorn körs under. För lektion 2 måste du kopiera InstTargetCertificate.cer filen manuellt till en mapp som kan nås från initierarinstansen.

    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
    

Skapa meddelandetyperna

  • Kopiera och klistra in följande kod i ett frågeredigerarefönster och kör den sedan för att skapa meddelandetyperna för konversationen. Namnen och egenskaperna för meddelandetypen som anges här måste vara identiska med de som du skapar i InstInitiatorDB nästa lektion.

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

Skapa kontraktet

  • Kopiera och klistra in följande kod i ett frågeredigerarefönster och kör den sedan för att skapa kontraktet för konversationen. Kontraktnamnet och egenskaperna som anges här måste vara identiska med det kontrakt som du skapar i InstInitiatorDB nästa lektion.

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

Skapa målkön och tjänsten

  • Kopiera och klistra in följande kod i ett frågeredigerarefönster och kör den sedan för att skapa kön och tjänsten som används för målet. - CREATE SERVICE instruktionen associerar tjänsten med InstTargetQueue, så att alla meddelanden som skickas till tjänsten tas emot i InstTargetQueue. Anger CREATE SERVICE också att endast konversationer som använder BothDB/2InstSample/SimpleContract som skapades tidigare kan använda tjänsten som måltjänst.

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

Nästa steg

Du har skapat databaserna för självstudien. Sedan skapar InstInitiatorDB du och konfigurerar den med de objekt som krävs för att stödja initierarens slut på en Service Broker-konversation.