Identité et contrôle d'accès (Service Broker)

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. Notez, cependant, que si la procédure stockée elle-même est définie avec une clause EXECUTE AS, les instructions de la procédure stockée s'exécutent avec le contexte de sécurité défini par la procédure stockée. SQL Server définit en premier le contexte de sécurité sur l'utilisateur spécifié pour la file d'attente. SQL Server exécute ensuite la procédure stockée et la procédure stockée modifie le contexte de sécurité avec 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.