Share via


Permissões de notificação de consulta

O usuário de banco de dados, que executa um comando que contém uma solicitação de assinatura de notificação, deve ter a permissão SUBSCRIBE QUERY NOTIFICATIONS concedida no banco de dados onde o comando é executado. Os exemplos a seguir mostram a sintaxe para a instrução GRANT.

use dbname
GRANT SUBSCRIBE QUERY NOTIFICATIONS TO database_principal

Uma assinatura de notificação pertence ao principal do banco de dados que executou o comando que registrou a assinatura. Quando o banco de dados eliminar um principal, as assinaturas de notificação pertencentes ao principal são removidas, sem produzir uma mensagem de notificação. Entretanto, a operação para eliminar produz um aviso, que contém uma contagem do número de assinaturas de notificação de consulta eliminadas como resultado do comando DROP.

O principal que cria a notificação deve ter as seguintes permissões, no banco de dados onde executa a consulta, para criar com sucesso uma notificação que usa SqlDependency:

  • CREATE SERVICE

  • CREATE QUEUE

  • CREATE PROCEDURE

Para receber notificações, o assinante usuário deve ter permissões RECEIVE no QueryNotificationErrorsQueue do banco de dados de assinantes.

GRANT RECEIVE ON QueryNotificationErrorsQueue TO login

Você também precisa de permissão SEND no serviço do destino:

GRANT SEND ON SERVICE:://theservice to login

O usuário que executa a consulta deve ter permissão de SELECT nas tabelas que são acessadas para notificações.

Para obter mais informações, consulte Administração: tópicos de instruções (Service Broker).

Consulte também

Conceitos