Как разрешить сетевой доступ к компоненту Service Broker, используя сертификаты (Transact-SQL)
Чтобы разрешить другому экземпляру отправлять сообщения, используя безопасность транспорта компонента Service Broker на основе сертификатов, нужно создать пользователя для другого экземпляра и установить сертификат для другого экземпляра.
Разрешение доступа из другого экземпляра при помощи сертификатов
Получите сертификат для другого экземпляра из доверенного источника. Обычно в таких случаях сертификат пересылается в зашифрованном электронном письме или передается на физическом носителе, например на гибком диске.
Примечание безопасности. Устанавливайте сертификаты, полученные только из доверенных источников. Создайте имя входа.
В базе данных master создайте пользователя для этого имени входа.
Установите сертификат для другого экземпляра в базе данных master. Пользователь, созданный на шаге 3, является владельцем сертификата.
Предоставьте имени входа доступ с помощью инструкции CONNECT к конечной точке компонента Service Broker.
Выведите сертификат, который используется для транспортной безопасности компонента Service Broker на локальном экземпляре.
Примечание безопасности. Выведите только сертификат, который используется для транспортной безопасности. Не выводите и не распространяйте закрытый ключ, связанный с сертификатом. Предоставьте сертификат администратору другой базы данных. Администратор удаленной базы данных устанавливает сертификат, используя описанные выше шаги 1-4.
Когда доступ сконфигурирован в каждом экземпляре, связь между ними использует безопасность транспорта компонента Service Broker, если конечные точки каждого экземпляра сконфигурированы для использования безопасности транспорта.
Пример
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
См. также
Задачи
Как создать сертификаты для безопасности транспорта компонента Service Broker (Transact-SQL)
Другие ресурсы
CREATE CERTIFICATE (Transact-SQL)
CREATE LOGIN (Transact-SQL)
CREATE USER (Transact-SQL)
BACKUP CERTIFICATE (Transact-SQL)