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


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

SQL Server использует безопасность диалога для любых диалогов со службой, для которой существует привязка удаленной службы. Если база данных, в которой находится целевая служба, не содержит пользователя, соответствующего пользователю, который создал диалог, этот диалог использует анонимную безопасность.

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

Проверка использования безопасности диалога службой-инициатором

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

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

  3. Установите сертификат для удаленной службы. Пользователь, созданный на шаге 3, является владельцем сертификата. По умолчанию сертификат активен для начала диалога инструкцией BEGIN DIALOG.

  4. Создайте привязку удаленной службы, в которой указывается пользователь и целевая служба. Чтобы пользоваться анонимной безопасностью диалога, в привязке удаленной службы указывается ANONYMOUS = ON.

Пример

В этом примере конфигурируется анонимная безопасность диалога для диалогов между службами OrderParts в текущем экземпляре и SupplierOrders в удаленном экземпляре.

USE AdventureWorks ;
GO

-- Given a certificate for a remote user for the remote service
-- SupplierOrders, create a remote service binding for
-- the service.  The remote user will be granted permission
-- to send messages to the local service OrderParts. 
-- This example assumes that the certificate for the service 
-- is saved in the file'C:\Certificates\SupplierOrders.cer' and that
-- the initiating service already exists.


-- Create a user without a login.

CREATE USER [SupplierOrdersUser]
    WITHOUT LOGIN ;
GO

-- Install a certificate for the owner of the service
-- in the remote database. The certificate is
-- provided by the owner of the remote service. The
-- user for the remote service owns the certificate.

CREATE CERTIFICATE [SupplierOrdersCertificate]
    AUTHORIZATION [SupplierOrdersUser]
    FROM FILE='C:\Certificates\SupplierOrders.cer' ;
GO

-- Create the remote service binding. Notice
-- that the user specified in the binding
-- does not own the binding itself.

-- Creating this binding specifies that messages from
-- this database are secured using the certificate for
-- the [SupplierOrdersUser] user.

-- Since anonymous is ON, the credentials for the user
-- that begins the conversation are not used for the
-- conversation.

CREATE REMOTE SERVICE BINDING [SupplierOrdersBinding]
    TO SERVICE 'SupplierOrders'
    WITH USER = [SupplierOrdersUser],
         ANONYMOUS = ON ;
GO

См. также

Задачи

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

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

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

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

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