Contrôle d’identité et d’accès (Service Broker)

S’applique à :SQL ServerAzure SQL Managed Instance

La plupart des applications Service Broker impliquant plusieurs instances s'exécutent dans le contexte de sécurité d'un principal de base de données créé spécifiquement pour l'application. Ces principaux 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 principaux de base de données créés pour les applications Service Broker.

  • L’autorisation à distance Service Broker s’applique quand une application Service Broker distante se connecte à SQL Server pour remettre un message à l’instance. Le principal de base de données spécifié pour l’autorisation à distance doit avoir CONNECT l’autorisation dans la base de données qui héberge le service de lancement et doit avoir SEND l’autorisation pour le service de lancement 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’un principal de base de données commence une conversation, ce principal doit disposer RECEIVE d’autorisations sur la file d’attente pour le service de lancement.

  • Le principal de base de données propriétaire du service initial doit disposer SEND d’autorisations sur le service cible.

  • Pour qu’un principal de base de données envoie des messages à un service, ce principal doit disposer SEND d’autorisations sur le service. Pour les services hébergés dans une instance différente, la sécurité du dialogue Service Broker détermine le principal de base de données dans l'instance distante. Pour plus d’informations, consultez la sécurité de la boîte de dialogue Service Broker. Service Broker ne prend pas en compte l’appartenance aux rôles Windows lors de la vérification SEND des autorisations.

  • 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. Toutefois, si la procédure stockée elle-même est définie avec une EXECUTE AS clause, 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 d’abord 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 change le contexte de sécurité sur l’utilisateur spécifié pour la procédure.

  • Lorsque service Broker transport security utilise SSPI, le compte de service de la base de données distante doit avoir CONNECT l’autorisation dans master, et doit également correspondre à une connexion. Par conséquent, le compte sous lequel l’instance SQL Server distante s’exécute doit être autorisé à se connecter à SQL Server en utilisant l’authentification Windows. Il n’est pas nécessaire pour la connexion d’avoir d’autres autorisations ou de détenir des objets dans une base de données.