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


CREATE REMOTE SERVICE BINDING (Transact-SQL)

Изменения: 15 сентября 2007 г.

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

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

CREATE REMOTE SERVICE BINDING binding_name 
   [ AUTHORIZATION owner_name ] 
   TO SERVICE 'service_name' 
   WITH  USER = user_name [ , ANONYMOUS = { ON | OFF } ]
[ ; ]

Аргументы

  • binding_name
    Имя создаваемой привязки удаленной службы. Здесь нельзя указывать имена серверов, баз данных и схем. Аргумент binding_name должен быть допустимым sysname.
  • AUTHORIZATION owner_name
    Назначает владельцем привязки указанного пользователя или роль базы данных. Если текущий пользователь — dbo или sa, аргумент owner_name может содержать имя любого пользователя или роли. В противном случае аргумент owner_name должен быть именем текущего пользователя, именем пользователя, на олицетворение которого у текущего пользователя есть разрешение, или именем роли, которой принадлежит текущий пользователь.
  • TO SERVICE 'service_name'
    Указывает удаленную службу, которую необходимо привязать к пользователю, указанному в предложении WITH USER.
  • USER = user_name
    Указывает участника базы данных, владеющего сертификатом, который связан с удаленной службой, указываемой предложением TO SERVICE. Этот сертификат применяется для шифрования и проверки подлинности сообщений, обмен которыми производится с удаленной службой.
  • ANONYMOUS
    Указывает, используется ли анонимная проверка подлинности при связи с удаленной службой. Если ANONYMOUS = ON, используется анонимная проверка подлинности, и все операции в удаленной базе данных выполняются от имени члена фиксированной роли базы данных public. Если ANONYMOUS = OFF, операции в удаленной базе данных выполняются от имени определенного пользователя этой базы данных. Если это выражение не задано, по умолчанию параметр принимает значение OFF. В разделе Обеспечение безопасности диалогов компонента Service Broker описано, как безопасность диалогов SQL Server соотносится с привязками удаленных служб к участникам.

Замечания

Компонент Service Broker использует привязку удаленной службы для поиска сертификата, который будет применяться при создании новых диалогов. Содержащийся в сертификате открытый ключ, связанный с пользователем user_name, предназначен для проверки подлинности сообщений, передаваемых удаленной службе, а также для шифрования ключа сеанса, который, в свою очередь, будет использован для шифрования диалога. В базе данных, на которой находится удаленная служба, должен иметься сертификат, соответствующий сертификату пользователя user_name.

Привязка удаленной службы необходима только для служб вызывающей стороны, которые взаимодействуют с конечными службами за пределами экземпляра SQL Server. База данных, в которой находится служба вызывающей стороны, должна содержать привязки удаленных служб для всех целевых служб за пределами экземпляра SQL Server. Базе данных, на которой находится конечная служба, нет необходимости хранить привязки для всех служб вызывающей стороны, которые с ней взаимодействуют. Если вызывающая и конечная службы находятся на том же экземпляре SQL Server, то привязки удаленной службы не нужны. Однако, если привязка удаленной службы существует,а служба service_name, указанная для TO SERVICE, соответствует имени локальной службы, то компонент Service Broker будет использовать привязку.

Если ANONYMOUS = ON, служба вызывающей стороны подключается к конечной службе как член фиксированной роли базы данных public. По умолчанию члены этой роли не имеют разрешения на подключение к базе данных. Для успешной отправки сообщения целевая база данных должна предоставить роли public разрешение CONNECT на базу данных и разрешение SEND на конечную службу.

Если пользователю принадлежит более одного сертификата, компонент Service Broker выбирает из действующих и помеченных как AVAILABLE FOR BEGIN_DIALOG сертификатов тот, который имеет больший срок действия.

Разрешения

Разрешения для создания привязки удаленной службы по умолчанию даются пользователю, имя которого указано в предложении USER, членам фиксированных ролей базы данных db_owner, db_ddladmin и членам фиксированной серверной роли sysadmin.

Пользователь, выполняющий инструкцию CREATE REMOTE SERVICE BINDING, должен иметь разрешение на олицетворение указанного в инструкции участника.

Привязка удаленной службы не может быть временным объектом. Имена привязок удаленной службы, начинающиеся с символа #, допустимы, но они являются постоянными объектами.

Примеры

А. Создание привязки удаленной службы

В следующем примере создается привязка для службы //Adventure-Works.com/services/AccountsPayable. Компонент Service Broker использует сертификат, принадлежащий участнику базы данных APUser, для проверки подлинности удаленной службы и обмена с ней ключами сеанса.

CREATE REMOTE SERVICE BINDING APBinding
    TO SERVICE '//Adventure-Works.com/services/AccountsPayable'
    WITH USER = APUser ;

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

В следующем примере создается привязка для службы //Adventure-Works.com/services/AccountsPayable. Компонент Service Broker использует сертификат, принадлежащий участнику базы данных APUser, для обмена ключами сеанса с удаленной службой. Проверка подлинности при доступе к удаленной службе не производится. В базе данных, в которой находится удаленная служба, сообщения доставляются от имени пользователя guest.

CREATE REMOTE SERVICE BINDING APBinding
    TO SERVICE '//Adventure-Works.com/services/AccountsPayable'
    WITH USER = APUser, ANONYMOUS=ON ;

См. также

Справочник

ALTER REMOTE SERVICE BINDING (Transact-SQL)
DROP REMOTE SERVICE BINDING (Transact-SQL)
EVENTDATA (Transact-SQL)

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

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

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

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

Журнал изменений

Версия Журнал

15 сентября 2007 г.

Изменения
  • Заявленные привязки удаленной службы применяются к локальным службам.