查询通知权限
如果数据库用户执行的命令包含通知订阅请求,则必须为此用户授予对执行命令所在数据库的 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)。