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
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ça Instale somente certificados de origens confiáveis.
Crie um logon.
Crie um usuário para o logon no banco de dados mestre.
Instale o certificado para a outra instância no banco de dados mestre. O usuário criado na etapa 3 possui o certificado.
Conceda o acesso de logon CONNECT ao ponto de extremidade do Agente de Serviços.
Despeje o certificado usado na segurança de transporte do Agente de Serviços na instância local.
Observaçã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.
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