Compartilhar via


Como permitir acesso à rede ao Service Broker com certificados (Transact-SQL)

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

Para permitir acesso de outra instância usando certificados

  1. Obtenha o certificado para a outra instância de uma fonte confiável. Geralmente isso envolve enviar o certificado usando email criptografado ou transferir o certificado em mídia física como, por exemplo, um disquete.

    Observação sobre segurançaObservação sobre segurança

    Instale somente certificados de origens confiáveis.

  2. Crie um logon.

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

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

  5. Conceda o acesso de logon CONNECT ao ponto de extremidade do Agente de Serviços.

  6. Despeje o certificado usado na segurança de transporte do Agente de Serviços na instância local.

    Observação sobre segurançaObservação sobre segurança

    Só despeje o certificado usao 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 1- 4 acima.

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 Agente de Serviços quando os pontos de extremidade em ambas as instâncias estiverem configurados para permitir segurança de transporte.

Exemplo

USE master ;
GO

-- Create a login for the remote instance.

CREATE LOGIN RemoteInstanceLogin
    WITH PASSWORD = '#gh!3A%!1@f' ;
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