Share via


Permisos de notificaciones de consulta

El usuario de base de datos que ejecuta un comando que contiene una solicitud de suscripción a notificaciones debe tener el permiso SUBSCRIBE QUERY NOTIFICATIONS para la base de datos donde se ejecuta el comando. El ejemplo siguiente muestra la sintaxis de la instrucción GRANT.

use dbname
GRANT SUBSCRIBE QUERY NOTIFICATIONS TO database_principal

Una suscripción a notificaciones es propiedad de la entidad de seguridad de base de datos que ejecutó el comando que registró la suscripción. Cuando la base de datos quita una entidad de seguridad, las suscripciones a notificaciones propiedad de esa entidad de seguridad se eliminan sin generar ningún mensaje de notificación. Sin embargo, esta operación de eliminación produce una advertencia que contiene un recuento del número de suscripciones a notificaciones de consulta que se han quitado como resultado del comando DROP.

La entidad de seguridad que crea la notificación debe tener los siguientes permisos en la base de datos en la que se ejecuta la consulta para poder crear correctamente una notificación mediante SqlDependency:

  • CREATE SERVICE

  • CREATE QUEUE

  • CREATE PROCEDURE

Para recibir notificaciones, el usuario suscrito debe tener permisos RECEIVE en QueryNotificationErrorsQueue de la base de datos suscrita.

GRANT RECEIVE ON QueryNotificationErrorsQueue TO login

También se necesita el permiso SEND en el servicio de destino:

GRANT SEND ON SERVICE:://theservice to login

El usuario que ejecuta la consulta debe tener el permiso SELECT para las tablas a las que se accede para las notificaciones.

Para obtener más información, vea Administración: Temas de procedimientos (Service Broker).