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


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

SQL Server проверяет наличие разрешения SEND при обращениях к каждой службе и наличие разрешений RECEIVE при обращениях к каждой очереди. Субъект безопасности, владеющий службой-инициатором, должен иметь разрешение на отправление SEND сообщений целевой службе. Субъект безопасности, использующий приложение, должен иметь разрешение на получение сообщений RECEIVE из всех очередей, из которых приложению будут поступать сообщения.

Эта процедура является упрощенным вариантом процедуры конфигурирования механизма обеспечения безопасности на удаленной системе. В обоих случаях пользователю предоставляется разрешение на отправление SEND сообщений целевой службе и разрешение на получение RECEIVE сообщений из очереди службы, отправляющей сообщения. Однако в случае взаимодействия с удаленной системой нужно еще так настроить механизм обеспечения безопасности компонента Service Broker, чтобы он правильно определял удаленного пользователя. Если взаимодействие осуществляется в пределах одной базы данных, нужно только предоставить разрешения.

Предоставление разрешений пользователю локальной службы

  1. Предоставьте пользователю разрешение на получение сообщений из очереди, используемой приложением.

  2. Предоставьте пользователю, владеющему службой-инициатором, разрешение на отправление сообщений службам, с которыми взаимодействует приложение.

Пример

В следующем примере пользователю BrokerApplicationUser предоставляются разрешения на отправку сообщений службе Ordering от службы, использующей очередь StoreFrontQueue. В этой процедуре предполагается, что пользователь, службы и очередь уже существуют.

USE AdventureWorks2008R2 ;
GO

-- This example sets permissions for a service
-- program that sends messages to the Ordering service
-- and receives messages from the StoreFrontQueue queue.

-- Grant SEND permission on the service to the owner
-- of the initiating service.
GRANT SEND ON SERVICE::[Ordering]
TO [BrokerApplicationUser] ;
GO

-- Grant RECEIVE permission on the queue.
GRANT RECEIVE ON [StoreFrontQueue]
TO [BrokerApplicationUser] ;
GO

См. также

Задания

Справочник

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