Gör så här: Tillåt service broker-nätverksåtkomst med hjälp av certifikat (Transact-SQL)

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

Om du vill tillåta att en annan instans skickar meddelanden med hjälp av certifikatbaserad Service Broker-transportsäkerhet skapar du en användare för den andra instansen och installerar certifikatet för den andra instansen.

Tillåta åtkomst från en annan instans med hjälp av certifikat

  1. Hämta certifikatet för den andra instansen från en betrodd källa. Detta innebär vanligtvis att du skickar certifikatet med krypterad e-post eller överför certifikatet på fysiska medier, till exempel en diskett.

    Anmärkning

    Installera endast certifikat från betrodda källor.

  2. Skapa en inloggning.

  3. Skapa en användare för inloggningen master i databasen.

  4. Installera certifikatet för den andra instansen master i databasen. Användaren som skapades i steg 3 äger certifikatet.

  5. Bevilja inloggningsåtkomst CONNECT till Service Broker-slutpunkten.

  6. Dumpa certifikatet som används för Service Broker-transportsäkerhet i den lokala instansen.

    Anmärkning

    Dumpa endast certifikatet som används för transportsäkerhet. Dumpa eller distribuera inte den privata nyckel som är associerad med certifikatet.

  7. Ange certifikatet till administratören för den andra databasen. Fjärrdatabasens administratör installerar det här certifikatet med hjälp av föregående steg 1–4.

När åtkomsten har konfigurerats i varje instans använder kommunikationen mellan de två instanserna Service Broker transportsäkerhet när slutpunkterna för båda instanserna har konfigurerats för att tillåta transportsäkerhet.

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