Berechtigungen für Abfragebenachrichtigungen

Dem Datenbankbenutzer, der einen Befehl ausführt, der eine Benachrichtigungsabonnementanforderung enthält, muss die SUBSCRIBE QUERY NOTIFICATIONS-Berechtigung für die Datenbank erteilt worden sein, in der der Befehl ausgeführt wird. Das folgende Beispiel zeigt die Syntax für die GRANT-Anweisung:

use dbname
GRANT SUBSCRIBE QUERY NOTIFICATIONS TO database_principal

Ein Benachrichtigungsabonnement befindet sich im Besitz des Datenbankprinzipals, der den Befehl ausgeführt hat, mit dem das Abonnement registriert wurde. Wenn die Datenbank einen Prinzipal löscht, werden die Benachrichtigungsabonnements im Besitz dieses Prinzipals entfernt, ohne dass eine Benachrichtigungsmeldung erstellt wird. Der Löschvorgang generiert jedoch eine Warnung, die die Anzahl der als Ergebnis des DROP-Befehls gelöschten Abfragebenachrichtigungsabonnements enthält.

Der Prinzipal, der die Benachrichtigung erstellt, muss über die folgenden Berechtigungen in der Datenbank verfügen, in der die Abfrage ausgeführt wird, um mithilfe von SqlDependency erfolgreich eine Benachrichtigung erstellen zu können:

  • CREATE SERVICE

  • CREATE QUEUE

  • CREATE PROCEDURE

Der Benutzer, dem das Abonnement gehört, muss über RECEIVE-Berechtigungen für die QueryNotificationErrorsQueue der abonnierenden Datenbank verfügen, damit er Benachrichtigungen empfangen kann.

GRANT RECEIVE ON QueryNotificationErrorsQueue TO login

Sie benötigen außerdem SEND-Berechtigung für den Zieldienst:

GRANT SEND ON SERVICE:://theservice to login

Der Benutzer, der die Abfrage ausführt, muss für die Tabellen, auf die für Benachrichtigungszwecke zugegriffen wird, über die SELECT-Berechtigung verfügen.

Weitere Informationen finden Sie unter Verwaltung: Themen zur Vorgehensweise (Service Broker).

Siehe auch

Konzepte