Vorgehensweise: Zulassen von Service Broker-Netzwerkzugriff mithilfe von Zertifikaten (Transact-SQL)

Um einer anderen Instanz zu ermöglichen, Nachrichten mithilfe der zertifikatbasierten Service Broker-Transportsicherheit zu senden, erstellen Sie einen Benutzer für die andere Instanz und installieren das Zertifikat für die andere Instanz.

So lassen Sie den Zugriff von einer anderen Instanz mithilfe von Zertifikaten zu

  1. Rufen Sie das Zertifikat für die andere Instanz von einer vertrauenswürdigen Quelle ab. Normalerweise umfasst dies das Senden des Zertifikats mithilfe einer verschlüsselten E-Mail oder das Übertragen des Zertifikats auf physischen Medien, z. B. einer Diskette.

    SicherheitshinweisSicherheitshinweis

    Installieren Sie Zertifikate nur von vertrauenswürdigen Quellen.

  2. Erstellen Sie einen Anmeldenamen.

  3. Erstellen Sie einen Benutzer für den Anmeldenamen in der master-Datenbank.

  4. Installieren Sie das Zertifikat für die andere Instanz in der master-Datenbank. Der in Schritt 3 erstellte Benutzer ist Besitzer des Zertifikats.

  5. Erteilen Sie dem Service Broker-Endpunkt den Anmeldezugriff CONNECT.

  6. Legen Sie das für die Service Broker-Transportsicherheit verwendete Zertifikat in der lokalen Instanz ab.

    SicherheitshinweisSicherheitshinweis

    Legen Sie nur das Zertifikat ab, das für die Transportsicherheit verwendet wird. Legen Sie nicht den dem Zertifikat zugeordneten, privaten Schlüssel ab. Verteilen Sie ihn auch nicht.

  7. Übergeben Sie das Zertifikat dem Administrator der anderen Datenbank. Der Administrator der Remotedatenbank installiert dieses Zertifikat, indem er die oben angeführten Schritte 1-4 befolgt.

Nachdem der Zugriff in jeder Instanz konfiguriert ist, verwenden Kommunikationen zwischen den zwei Instanzen die Service Broker-Transportsicherheit, wenn die Endpunkte für beide Instanzen so konfiguriert sind, dass sie Transportsicherheit zulassen.

Beispiel

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