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

Aplica-se a:SQL ServerAzure SQL Managed Instance

Para permitir que outra instância envie mensagens usando a segurança de transporte do Service Broker baseada em certificado, 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 e-mail criptografado ou a transferência do certificado em mídia física, como um disquete.

    Observação

    Instale apenas certificados de fontes confiáveis.

  2. Crie um login.

  3. Crie um usuário para o login 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 ao login CONNECT acesso ao ponto de extremidade do Service Broker.

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

    Observação

    Despeje apenas o certificado usado para segurança de transporte. Não despeje nem 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 - 4.

Depois que o acesso é configurado em cada instância, as comunicações entre as duas instâncias usam a segurança de transporte do Service Broker quando os pontos de extremidade para ambas as instâncias são configurados para permitir a segurança do transporte.

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