Guide pratique pour autoriser l’accès réseau Service Broker à l’aide de certificats (Transact-SQL)

S’applique à :SQL ServerAzure SQL Managed Instance

Pour permettre à une autre instance d'envoyer des messages en utilisant la sécurité du transport Service Broker, créez un utilisateur pour cette autre instance et installez son certificat.

Autoriser l’accès à partir d’une autre instance à l’aide de certificats

  1. Procurez-vous le certificat pour cette autre instance auprès d'une source fiable. En règle générale, cela implique l’envoi du certificat à l’aide d’un e-mail chiffré ou le transfert du certificat sur un support physique, tel qu’un disque de floppy.

    Notes

    Installez uniquement des certificats provenant de sources fiables.

  2. Créez une connexion.

  3. Créez un utilisateur pour la connexion dans la master base de données.

  4. Installez le certificat pour l’autre instance de la master base de données. L'utilisateur créé à l'étape 3 est propriétaire du certificat.

  5. Accordez l’accès de connexion CONNECT au point de terminaison Service Broker.

  6. Videz le certificat utilisé pour la sécurité du transport Service Broker dans l’instance locale.

    Notes

    Conservez uniquement le certificat utilisé pour la sécurité du transport. Ne videz pas ou ne distribuez pas la clé privée associée au certificat.

  7. Fournissez le certificat à l'administrateur de l'autre base de données. L’administrateur de la base de données distante installe ce certificat à l’aide des étapes précédentes 1 à 4.

Une fois l'accès configuré dans chaque instance, les communications entre ces deux instances utilisent la sécurité du transport Service Broker dès que leurs points de terminaison sont configurés pour autoriser la sécurité du transport.

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