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


Как сконфигурировать целевые службы для анонимного обеспечения безопасности диалога (Transact-SQL)

SQL Server обеспечивает безопасность любого диалога со службой, для которой, в базе данных, обслуживающей инициировавший диалог служб, имеется привязка удаленной службы. Если в привязке удаленной службы указан параметр ANONYMOUS = ON, выполняется анонимное обеспечение безопасности диалога. В этом случае — данные пользователя службы, инициировавшей диалог, могут отсутствовать в целевой базе данных. Службе-инициатору соответствует в целевой базе данных роль public.

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

  1. Создайте пользователя без имени входа.

  2. Создайте сертификат для этого пользователя.

    ms166108.note(ru-ru,SQL.90).gifПримечание.
    Этот сертификат должен быть зашифрован при помощи главного ключа. Дополнительные сведения см. в разделе CREATE MASTER KEY (Transact-SQL).
  3. Создайте резервную копию сертификата в файле.

    ms166108.security(ru-ru,SQL.90).gifПримечание безопасности.
    Создайте резервную копию сертификата только этого пользователя. Не создавайте резервные копии связанного с сертификатом закрытого ключа и не распространяйте его.
  4. Предоставьте пользователю целевой службы разрешение на получение сообщений из очереди, используемой целевой службой.

  5. Предоставьте роли PUBLIC разрешение на отправление сообщений целевой службе.

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

Пример

USE AdventureWorks ;
GO

--------------------------------------------------------------------
-- This script configures security for a local user in the database.
-- The script creates a user in this database, creates a certificate
-- for the user, writes the certificate to the file system, and
-- grants permissions to the user. Since this service is a target
-- service, no remote service binding is necessary.

-- Create a user without a login. For convenience,
-- the name of the user is based on the name of the
-- the remote service.

CREATE USER [SupplierOrdersUser]
    WITHOUT LOGIN;
GO

-- Create a certificate for the initiating service
-- to use to send messages to the target service.

CREATE CERTIFICATE [SupplierOrdersCertificate]
    AUTHORIZATION [SupplierOrdersUser]
    WITH SUBJECT = 'Certificate for the SupplierOrders service user.';
GO

-- Backup the certificate. Provide the certificate file
-- to the administrator for the database that hosts
-- the other service.

BACKUP CERTIFICATE [SupplierOrdersCertificate]
   TO FILE = 'C:\Certificates\SupplierOrders.cer';
GO

-- Grant receive on the orders queue to the local user.

GRANT RECEIVE ON SupplierOrdersQueue
    TO [SupplierOrdersUser];
GO

-- Grant send on the service to public.

GRANT SEND ON SERVICE::[SupplierOrders] TO public ;

См. также

Задачи

Как настроить разрешения для локальной службы (Transact-SQL)
Как настроить службы вызывающей стороны для анонимной безопасности диалога (Transact-SQL)

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

CREATE CERTIFICATE (Transact-SQL)
CREATE USER (Transact-SQL)
CREATE REMOTE SERVICE BINDING (Transact-SQL)
CREATE MASTER KEY (Transact-SQL)

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

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