Comment donner accès à la base de données SQL Server mail procédures pour une Connexion à une base de données différente?

Je voudrais savoir comment configurer des autorisations au sein de SQL Server pour permettre à ma demande de Login/Rôle pour être en mesure d'envoyer des e-mail à l'aide de msdb.dbo.sp_send_dbmail.

J'ai une base de données de MyDb, un utilisateur MyUser qui est un membre du rôle AppRole. J'ai une procédure stockée myProc que les appels msdb.dbo.sp_send_dbmail. Si j'exécute myProc connecté en tant que sa tout cela fonctionne bien, mais si j'exécute tout en étant connecté en tant que MyUser j'obtiens une erreur:

Msg 229, Niveau 14, État 5, Procédure sp_send_dbmail, Ligne 1
L'autorisation d'EXÉCUTION a été refusée sur l'objet "sp_send_dbmail" base de données "base de données msdb", schéma "dbo".

Ma base de données n'est pas digne de CONFIANCE, donc je crois que je ne peut pas utiliser EXÉCUTER en tant QUE pour usurper l'identité d'un autre utilisateur, par exemple, créer des myProc à EXÉCUTER en tant QUE PROPRIÉTAIRE... (Référence MSDN)

Donc je pense que j'ai besoin de faire mon utilisateur(s) également les utilisateurs dans la base de données msdb, mais ce que je peux faire au niveau de Rôle ou dois-je faire de ma base de données, les utilisateurs les utilisateurs dans la base de données msdb?

La base de données de profil de messagerie que j'utilise est fixé au public, donc je ne pense pas que ce soit lié au profil des autorisations.

J'ai fini juste de créer mon utilisateurs les utilisateurs dans la base de données msdb. Pour des raisons de simplicité, je ne voulais pas utiliser @Remus Rusanu la suggestion de certificats, bien que dans une diff de l'environnement qui peut être une bonne option. Si vous avez beaucoup d'utilisateurs de base de données, il pourrait être possible d'utiliser EXÉCUTER en tant QUE pour usurper l'identité d'un seul db utilisateur et ensuite il suffit de donner à un utilisateur l'accès à la base de données msdb - je n'ai pas besoin de chercher dans cette option.

OriginalL'auteur Rory | 2011-04-06