Cómo permitir el acceso a la red en Service Broker con certificados (Transact-SQL)
Para permitir que otra instancia envíe mensajes utilizando la seguridad de transporte de Service Broker basada en certificados, cree un usuario para la otra instancia e instale el certificado en dicha instancia.
Para permitir el acceso desde otra instancia mediante certificados
Obtenga el certificado para la otra instancia en un origen de confianza. Normalmente, esto supone enviar la certificando mediante un correo electrónico cifrado o transferir el certificado en un medio físico, como un disquete.
Nota de seguridad Instale sólo certificados que provengan de fuentes de confianza.
Cree un inicio de sesión.
Cree un usuario para el inicio de sesión en la base de datos maestra.
Instale el certificado para la otra instancia en la base de datos maestra. El usuario creado en el paso 3 será el propietario del certificado.
Conceda acceso de inicio de sesión CONNECT al extremo de Service Broker.
Vuelque el certificado que se utiliza para la seguridad de transporte de Service Broker en la instancia local.
Nota de seguridad Vuelque sólo el certificado utilizado para la seguridad de transporte. No vuelque ni distribuya la clave privada asociada con el certificado.
Proporcione el certificado al administrador de la otra base de datos. El administrador de la base de datos remota instala este certificado con los pasos 1 a 4 anteriores.
Una vez configurado el acceso en cada instancia, las comunicaciones entre las dos instancias utilizarán la seguridad de transporte de Service Broker cuando los extremos de ambas instancias estén configurados para permitir la seguridad de transporte.
Ejemplo
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