Поделиться через


Как разрешить сетевой доступ к компоненту Service Broker, используя сертификаты (Transact-SQL)

Чтобы разрешить другому экземпляру отправлять сообщения, используя безопасность транспорта компонента Service Broker на основе сертификатов, нужно создать пользователя для другого экземпляра и установить сертификат для другого экземпляра.

Разрешение доступа из другого экземпляра при помощи сертификатов

  1. Получите сертификат для другого экземпляра из доверенного источника. Обычно в таких случаях сертификат пересылается в зашифрованном электронном письме или передается на физическом носителе, например на гибком диске.

    ms166077.security(ru-ru,SQL.90).gifПримечание безопасности.
    Устанавливайте сертификаты, полученные только из доверенных источников.
  2. Создайте имя входа.

  3. В базе данных master создайте пользователя для этого имени входа.

  4. Установите сертификат для другого экземпляра в базе данных master. Пользователь, созданный на шаге 3, является владельцем сертификата.

  5. Предоставьте имени входа доступ с помощью инструкции CONNECT к конечной точке компонента Service Broker.

  6. Выведите сертификат, который используется для транспортной безопасности компонента Service Broker на локальном экземпляре.

    ms166077.security(ru-ru,SQL.90).gifПримечание безопасности.
    Выведите только сертификат, который используется для транспортной безопасности. Не выводите и не распространяйте закрытый ключ, связанный с сертификатом.
  7. Предоставьте сертификат администратору другой базы данных. Администратор удаленной базы данных устанавливает сертификат, используя описанные выше шаги 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)

Справка и поддержка

Получение помощи по SQL Server 2005