查询通知权限

如果数据库用户执行的命令包含通知订阅请求,则必须为此用户授予对执行命令所在数据库的 SUBSCRIBE QUERY NOTIFICATIONS 权限。下面的示例显示了 GRANT 语句的语法。

use dbname
GRANT SUBSCRIBE QUERY NOTIFICATIONS TO database_principal

通知订阅由执行注册了订阅的命令的数据库主体所拥有。当数据库删除主体时,便会删除主体所拥有的通知订阅,而不生成通知消息。但是,删除操作会生成一条警告,其中包含由 DROP 命令删除的查询通知订阅的计数。

创建通知的主体必须对运行查询的数据库具有下列权限才能使用 SqlDependency 成功创建通知:

  • CREATE SERVICE

  • CREATE QUEUE

  • CREATE PROCEDURE

若要接收通知,订阅用户必须对订阅数据库的 QueryNotificationErrorsQueue 具有 RECEIVE 权限。

GRANT RECEIVE ON QueryNotificationErrorsQueue TO login

您还需要目标设备的 SEND 权限:

GRANT SEND ON SERVICE:://theservice to login

运行查询的用户必须对要访问通知的表具有 SELECT 权限。

有关详细信息,请参阅管理操作指南主题 (Service Broker)

请参阅

概念