Autorisations Service Broker au niveau utilisateur

La plupart des applications Service Broker impliquant plusieurs instances s'exécutent dans le contexte de sécurité d'une entité de sécurité de base de données créée spécifiquement pour l'application. Ces entités de sécurité de base de données doivent disposer des autorisations minimales requises pour accomplir les tâches que l'application exécute.

Les observations suivantes s'appliquent aux entités de sécurité de base de données créées pour les applications Service Broker.

  • L'autorisation distante Service Broker s'applique lorsqu'une application Service Broker distante se connecte à SQL Server pour remettre un message à l'instance. L'entité de sécurité de base de données spécifiée pour l'autorisation distante doit être dotée de l'autorisation CONNECT dans la base de données hébergeant le service initiateur et de l'autorisation SEND pour le service initiateur lui-même. L'utilisateur doit disposer du certificat utilisé pour l'authentification. Outre ces conditions, l'utilisateur n'est en aucun cas obligé de posséder d'autres objets, de disposer d'autorisations supplémentaires ou d'être en mesure de se connecter via un autre dispositif.
  • Pour qu'une entité de sécurité de base de données entame une conversation, elle doit disposer des autorisations RECEIVE dans la file d'attente pour le service initiateur.
  • L'entité de sécurité de base de données qui détient le service initiateur doit bénéficier des autorisations SEND sur le service cible.
  • Pour qu'une entité de sécurité de base de données envoie des messages vers un service, elle doit disposer des autorisations SEND sur le service. Pour les services hébergés dans une instance différente, la sécurité du dialogue Service Broker détermine l'entité de sécurité de base de données dans l'instance distante. Pour plus d'informations, consultez Sécurité du dialogue Service Broker. Remarquez que Service Broker ne tient aucun compte de l'adhésion définie dans les rôles Windows lorsqu'il vérifie les autorisations SEND.
  • L'utilisateur spécifié comme utilisateur d'une procédure stockée d'activation doit être autorisé à exécuter la procédure. Souvent, l'utilisateur spécifié dispose des autorisations nécessaires pour exécuter les instructions dans la procédure. Il est intéressant de remarquer néanmoins que si la procédure stockée elle-même est définie par le biais de la clause EXECUTE AS, les instructions contenues dans cette procédure stockée s'exécuteront selon le contexte de sécurité défini par la procédure. SQL Server définit tout d'abord le contexte de sécurité sur l'utilisateur spécifié pour la file d'attente, puis exécute la procédure stockée qui déplace le contexte de sécurité sur l'utilisateur spécifié pour la procédure.
  • Lorsque la sécurité du transport Service Broker utilise SSPI, le compte du service pour la base de données distante doit disposer de l'autorisation CONNECT dans master et correspondre également à une connexion. Le compte sous lequel l'instance SQL Server distante s'exécute doit donc être doté de l'autorisation de connexion à SQL Server par le biais de l'authentification Windows. Cette connexion ne sous-entend aucune autre condition, telle que disposer d'autorisations annexes ou posséder des objets dans une base de données quelconque.

Voir aussi

Autres ressources

GRANT - Autorisations sur Service Broker (Transact-SQL)
Autorisations associées aux notifications de requêtes

Aide et Informations

Assistance sur SQL Server 2005