Lektion 1: Erstellen der Zieldatenbank

Neu: 15. September 2007

In dieser Lektion lernen Sie, die Zieldatenbank und alle Service Broker-Zielobjekte ohne Abhängigkeiten zur Initiatordatenbank zu erstellen. Führen Sie diese Schritte mit einer Kopie von Management Studioaus, die auf dem gleichen Computer wie die Zielinstanz von Datenbankmodul ausgeführt wird.

Vorgehensweisen

Erstellen eines Service Broker-Endpunkts

  1. Kopieren Sie den folgenden Code, und fügen Sie ihn in ein Abfrage-Editorfenster ein. Führen Sie ihn dann aus, um einen Service Broker-Endpunkt für diese Instanz von Datenbankmodul zu erstellen. Ein Service Broker-Endpunkt richtet die Netzwerkadresse ein, an die Service Broker-Nachrichten gesendet werden. Der Endpunkt verwendet den standardmäßigen Service Broker-TCP-Port 4022 und legt fest, dass die Remoteinstanzen von Datenbankmodul Nachrichten mithilfe von Windows-Authentifizierungsverbindungen senden.

    Die Windows-Authentifizierung kann verwendet werden, wenn beide Computer sich in der gleichen Domäne oder in vertrauenswürdigen Domänen befinden. Befinden sich die Computer nicht in vertrauenswürdigen Domänen, verwenden Sie Zertifikatssicherheit für die Endpunkte. Weitere Informationen finden Sie unter Vorgehensweise: Erstellen von Zertifikaten für die Service Broker-Transportsicherheit (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
    

Erstellen von Zieldatenbank, Hauptschlüssel und Benutzer

  1. Kopieren Sie den folgenden Code, und fügen Sie ihn in ein Abfrage-Editorfenster ein. Ändern Sie das Kennwort in der CREATE MASTER KEY-Anweisung. Führen Sie dann den Code aus, um die für dieses Lernprogramm verwendete Zieldatenbank zu erstellen. Standardmäßig ist bei neuen Datenbanken die ENABLE_BROKER-Option aktiviert. Durch diesen Code werden auch der Hauptschlüssel und der Benutzer erstellt, die zur Unterstützung von Verschlüsselung und Remoteverbindungen verwendet werden.

    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
    

Erstellen des Zielzertifikats

  1. Kopieren Sie den folgenden Code, und fügen Sie ihn in ein Abfrage-Editorfenster ein. Ändern Sie den in der BACKUP CERTIFICATE-Anweisung angegebenen Dateinamen so, dass er auf einen Ordner in Ihrem System verweist. Führen Sie dann den Code aus, um das Zielzertifikat zu erstellen, das zum Verschlüsseln von Nachrichten verwendet wird. Der angegebene Ordner sollte Berechtigungen aufweisen, die den Zugriff von anderen Konten als Ihrem Windows-Konto oder dem Windows-Konto, unter dem die Instanz von Datenbankmodul läuft, verhindern. Für Lektion 2 müssen Sie die Datei InstTargetCertificate.cer manuell in einen Ordner kopieren, auf den von der Initiatorinstanz direkt zugegriffen werden kann.

    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
    

Erstellen der Nachrichtentypen

  1. Kopieren Sie den folgenden Code, und fügen Sie ihn in ein Abfrage-Editorfenster ein. Führen Sie ihn dann aus, um die Nachrichtentypen für die Konversation zu erstellen. Die hier angegebenen Namen für Nachrichtentypen und Eigenschaften müssen mit denen übereinstimmen, die Sie in der nächsten Lektion in InstInitiatorDB erstellen.

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

Erstellen des Vertrags

  1. Kopieren Sie den folgenden Code, und fügen Sie ihn in ein Abfrage-Editorfenster ein. Führen Sie ihn dann aus, um den Vertrag für die Konversation zu erstellen. Der hier angegebene Vertragsname und die Eigenschaften müssen mit dem Vertrag übereinstimmen, den Sie in der nächsten Lektion in der InstInitiatorDB erstellen.

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

Erstellen von Zielwarteschlange und -dienst

  1. Kopieren Sie den folgenden Code, und fügen Sie ihn in ein Abfrage-Editorfenster ein. Führen Sie ihn dann aus, um die Warteschlange und den Dienst zu erstellen, die für das Ziel verwendet werden. Mit der CREATE SERVICE-Anweisung wird der Dienst mit InstTargetQueue verknüpft, so dass alle an den Dienst gesendeten Nachrichten in InstTargetQueue empfangen werden. Die CREATE SERVICE-Anweisung gibt außerdem an, dass nur Konversationen, welche den von Ihnen zuvor erstellten //BothDB/ 2InstSample/SimpleContract verwenden, den Dienst als Zieldienst verwenden können.

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

Nächste Schritte

Sie haben erfolgreich die Datenbanken erstellt, die für das Lernprogramm verwendet werden. Danach erstellen Sie InstInitiatorDB und konfigurieren sie mit den Objekten, die zur Unterstützung des Initiators einer Service Broker-Konversation erforderlich sind. Siehe Lektion 2: Erstellen der Initiatordatenbank.

Siehe auch

Andere Ressourcen

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-Dialogsicherheit
Konversationsarchitektur
Dienstarchitektur

Hilfe und Informationen

Informationsquellen für SQL Server 2005