Como permitir o acesso à rede do Service Broker usando certificados (Transact-SQL)

Aplica-se a:SQL ServerInstância Gerenciada de SQL do Azure

Para permitir que outra instância envie mensagens usando a segurança de transporte do Service Broker baseada em certificados, crie um usuário para a outra instância e instale o certificado para a outra instância.

Permitir o acesso de outra instância usando certificados

  1. Obtenha o certificado para a outra instância de uma fonte confiável. Normalmente, isso envolve o envio do certificado usando o email criptografado ou a transferência do certificado em mídia física, como um disquete.

    Observação

    Instale somente certificados de origens confiáveis.

  2. Crie um logon.

  3. Crie um usuário para o logon no master banco de dados.

  4. Instale o certificado para a outra instância no master banco de dados. O usuário criado na etapa 3 possui o certificado.

  5. Conceda acesso de logon CONNECT ao ponto de extremidade do Service Broker.

  6. Despejar o certificado usado para a segurança de transporte do Service Broker na instância local.

    Observação

    Só despeje o certificado usao para segurança de transporte. Não despejo ou distribua a chave privada associada ao certificado.

  7. Forneça o certificado ao administrador do outro banco de dados. O administrador do banco de dados remoto instala esse certificado usando as etapas anteriores 1 a 4.

Uma vez que o acesso esteja configurado em cada instância, as comunicações entre as duas instâncias usarão a segurança de transporte do Service Broker quando os pontos de extremidade em ambas as instâncias estiverem configurados para permitir segurança de transporte.

Exemplos

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