So geht's: Gewähren Sie Netzwerkzugriff für den Service Broker mithilfe von Zertifikaten (Transact-SQL)

Gilt für:SQL ServerAzure SQL Managed Instance

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.

Zugriff von einer anderen Instanz mithilfe von Zertifikaten zulassen

  1. Rufen Sie das Zertifikat für die andere Instanz von einer vertrauenswürdigen Quelle ab. In der Regel umfasst dies das Senden des Zertifikats mit verschlüsselten E-Mails oder das Übertragen des Zertifikats auf physischen Medien wie einem Diskettendatenträger.

    Hinweis

    Installieren Sie nur Zertifikate von vertrauenswürdigen Quellen.

  2. Erstellen Sie einen Anmeldenamen.

  3. Erstellen Sie einen Benutzer für die Anmeldung in der master Datenbank.

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

  5. Gewähren Sie den Anmeldezugriff CONNECT auf den Service Broker-Endpunkt.

  6. Entfernen Sie das Zertifikat, das für die Transportsicherheit des Service Brokers in der lokalen Instanz verwendet wird.

    Hinweis

    Legen Sie nur das Zertifikat ab, das für die Transportsicherheit verwendet wird. Sichern Oder verteilen Sie nicht den privaten Schlüssel, der dem Zertifikat zugeordnet ist.

  7. Übergeben Sie das Zertifikat dem Administrator der anderen Datenbank. Der Administrator der Remotedatenbank installiert dieses Zertifikat mit den vorherigen Schritten 1 bis 4.

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.

Examples

USE master;
GO

-- Create a login for the remote instance.
CREATE LOGIN RemoteInstanceLogin WITH PASSWORD = '<password>';
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