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


Безопасность диалога для уведомлений о событиях

Добавления: 5 декабря 2005 г.

Безопасность диалога компонента Service Broker должна быть настроена для уведомлений о событиях, посылающих сообщения компоненту Service Broker на удаленном сервере. Безопасность диалога должна настраиваться вручную согласно модели полной безопасности диалога компонента Service Broker. Дополнительные сведения см. в подразделе «Полная безопасность» раздела Обеспечение безопасности диалогов компонента Service Broker. Модель полной безопасности включает шифрование и дешифрование сообщений, посылаемых на удаленный сервер и принимаемых с этого сервера. Хотя уведомления о событиях посылаются в одном направлении, другие сообщения, например, ошибки, возвращаются в противоположном направлении.

Настройка безопасности диалога для уведомлений о событиях

Процесс, необходимый для реализации безопасности диалога для уведомлений о событиях, описан в последующих шагах. Эти шаги включают в себя действия, которые должны предприниматься как на исходном сервере, так и на целевом сервере. Исходным сервером является сервер, на котором создаются уведомления о событиях. Целевым сервером является сервер, получающий сообщение уведомления о событии. Действия в каждом шаге как для исходного, так и для целевого сервера должны быть завершены перед переходом к следующему шагу.

ms345355.note(ru-ru,SQL.90).gifВажно!
Все сертификаты должны создаваться с допустимыми датами начала и окончания.

Шаг 1. Задайте номер порта TCP и имя целевой службы.

Задайте порт TCP, через который как исходный, так и целевой серверы будут получать сообщения. Необходимо также определить имя целевой службы.

Шаг 2. Настройте шифрование и совместное использование сертификата для проверки подлинности на уровне базы данных.

Как на исходном, так и на целевом серверах выполните следующие действия.

Исходный сервер Целевой сервер

Выберите или создайте базу данных, в которой будут содержаться уведомление о событии и главный ключ.

Выберите или создайте базу данных, в которой будет содержаться главный ключ.

Если для базы данных-источника не существует главного ключа, создайте главный ключ. Главный ключ необходим как в исходной, так и в целевой базах данных для защиты их соответствующих сертификатов.

Если для целевой базы данных не существует главного ключа, создайте главный ключ.

Создайте имя входа и соответствующую учетную запись пользователя для базы данных-источника.

Создайте имя входа и соответствующую учетную запись пользователя для целевой базы данных.

Создайте сертификат, владельцем которого является пользователь базы данных-источника.

Создайте сертификат, владельцем которого является пользователь целевой базы данных.

Создайте резервную копию сертификата в файле, доступ к которому может иметь целевой сервер.

Создайте резервную копию сертификата в файле, доступ к которому может иметь исходный сервер.

Создайте учетную запись пользователя, задав пользователя для целевой базы данных, а также указав WITHOUT LOGIN. Этот пользователь будет владеть сертификатом целевой базы данных, который должен быть создан из файла резервной копии. Пользователь не должен быть сопоставлен с входным именем, т.к. единственной целью этого пользователя является владение сертификатом целевой базы данных, созданным на следующем шаге 3.

Создайте учетную запись пользователя, задав пользователя для базы данных-источника, а также указав WITHOUT LOGIN. Этот пользователь будет владеть сертификатом базы данных-источника, который должен быть создан из файла резервной копии. Пользователь не должен быть сопоставлен с входным именем, т.к. единственной целью этого пользователя является владение сертификатом базы данных-источника, созданным на следующем шаге 3.

Шаг 3. Сделайте общими сертификаты и предоставьте разрешения для проверки подлинности на уровне базы данных.

Как на исходном, так и на целевом серверах выполните следующие действия.

Исходный сервер Целевой сервер

Создайте сертификат из файла резервной копии целевого сертификата, задав в качестве владельца пользователя целевой базы данных.

Создайте сертификат из файла резервной копии исходного сертификата, задав в качестве владельца пользователя базы данных-источника.

Предоставьте разрешение для создания уведомления о событии пользователю базы данных-источника. Дополнительные сведения об этом разрешении см. в разделе CREATE EVENT NOTIFICATION (Transact-SQL).

Предоставьте разрешение REFERENCES пользователю целевой базы данных на существующий контракт компонента Service Broker для уведомлений о событиях. https://schemas.microsoft.com/SQL/Notifications/PostEventNotification.

Создайте привязку удаленной службы к целевой службе и задайте учетные данные пользователя целевой базы данных. Привязка удаленной службы обеспечивает то, что при помощи открытого ключа в сертификате, владельцем которого является пользователь базы данных-источника, будет осуществляться проверка подлинности сообщений, посылаемых на целевой сервер.

Предоставьте разрешения CREATE QUEUE, CREATE SERVICE и CREATE SCHEMA пользователю целевой базы данных.

 

Если вы еще не подключены к базе данных в качестве пользователя целевой базы данных, выполните это теперь.

 

Создайте очередь для приема сообщений с уведомлениями о событиях и создайте службу для доставки сообщений.

 

Предоставьте разрешение SEND на целевую службу пользователю базы данных-источника.

Предоставьте целевому серверу идентификатор компонента service broker базы данных-источника. Этот идентификатор может быть получен по запросу столбца service_broker_guid представления каталога sys.databases. Для уведомления о событии на уровне сервера используйте идентификатор компонента service broker базы данных msdb.

Предоставьте исходному серверу идентификатор компонента service broker целевой базы данных.

Шаг 4. Создайте маршруты и установите проверку подлинности на уровне сервера.

Как на исходном, так и на целевом серверах выполните следующие действия.

Исходный сервер Целевой сервер

Создайте маршрут к целевой службе и задайте идентификатор компонента service broker целевой базы данных, а также согласованный номер порта TCP.

Создайте маршрут к исходной службе и задайте идентификатор компонента service broker базы данных-источника, а также согласованный номер порта TCP. Для задания исходной службы используйте следующую поставляемую службу: https://schemas.microsoft.com/SQL/Notifications/EventNotificationService.

Переключитесь на базу данных master для настройки проверки подлинности на уровне сервера.

Переключитесь на базу данных master для настройки проверки подлинности на уровне сервера.

Если для базы данных master не существует главного ключа, создайте главный ключ.

Если для базы данных master не существует главного ключа, создайте главный ключ.

Создайте сертификат, выполняющий проверку подлинности базы данных.

Создайте сертификат, выполняющий проверку подлинности базы данных.

Создайте резервную копию сертификата в файле, доступ к которому может иметь целевой сервер.

Создайте резервную копию сертификата в файле, доступ к которому может иметь исходный сервер.

Создайте конечную точку и задайте согласованный номер порта TCP, FOR SERVICE_BROKER (AUTHENTICATION = CERTIFICATE certificate_name) и имя сертификата, выполняющего проверку подлинности.

Создайте конечную точку и задайте согласованный номер порта TCP, FOR SERVICE_BROKER (AUTHENTICATION = CERTIFICATE certificate_name) и имя сертификата, выполняющего проверку подлинности.

Создайте имя входа и задайте входное имя целевого сервера.

Создайте имя входа и задайте входное имя исходного сервера.

Предоставьте разрешение CONNECT на конечную точку для входного имени целевого средства проверки подлинности.

Предоставьте разрешение CONNECT на конечную точку для входного имени исходного средства проверки подлинности.

Создайте учетную запись пользователя и задайте входное имя целевого средства проверки подлинности.

Создайте учетную запись пользователя и задайте входное имя исходного средства проверки подлинности.

Шаг 5. Сделайте общими сертификаты для проверки подлинности на уровне сервера и создайте уведомление о событии.

Как на исходном, так и на целевом серверах выполните следующие действия.

Исходный сервер Целевой сервер

Создайте сертификат из файла резервной копии целевого сертификата, задав в качестве владельца пользователя целевого средства проверки подлинности.

Создайте сертификат из файла резервной копии исходного сертификата, задав в качестве владельца пользователя исходного средства проверки подлинности.

Переключитесь на базу данных-источник, на которой необходимо создать уведомление о событии, и если еще вы не подключены в качестве пользователя исходной базы данных, выполните это подключение.

Переключитесь на целевую базу данных для получения сообщений с уведомлениями о событиях.

Создайте уведомление о событии и задайте идентификатор компонента broker service целевой базы данных.

 

См. также

Справочник

Иерархия средств шифрования

Основные понятия

Реализация уведомлений о событиях

Другие ресурсы

Инструкция GRANT (Transact-SQL)
BACKUP CERTIFICATE (Transact-SQL)
sys.databases (Transact-SQL)
Факторы безопасности, которые следует учитывать при работе с компонентом Service Broker
Readme_ServiceBrokerConfiguration
Маршрутизация компонента Service Broker
CREATE MASTER KEY (Transact-SQL)
CREATE LOGIN (Transact-SQL)
CREATE USER (Transact-SQL)
CREATE CERTIFICATE (Transact-SQL)
CREATE REMOTE SERVICE BINDING (Transact-SQL)
Инструкция GRANT (Transact-SQL)
CREATE ROUTE (Transact-SQL)
CREATE QUEUE (Transact-SQL)
CREATE SERVICE (Transact-SQL)
CREATE ENDPOINT (Transact-SQL)
CREATE EVENT NOTIFICATION (Transact-SQL)

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

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