クエリ通知の権限
通知サブスクリプション要求を含むコマンドを実行するデータベース ユーザーは、コマンドを実行するデータベースで 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)」を参照してください。