我想知道如何在 SQL Server 中设置权限,以允许我的应用程序登录/角色能够使用msdb.dbo.sp_send_dbmail.
我有一个数据库 MyDb,一个用户MyUser是角色的成员AppRole。我有一个myProc调用msdb.dbo.sp_send_dbmail. 如果我myProc在登录时执行sa,一切正常,但如果我在登录时执行,则MyUser出现错误:
消息 229,级别 14,状态 5,过程 sp_send_dbmail,第 1 行
对象“sp_send_dbmail”、数据库“msdb”、架构“dbo”的 EXECUTE 权限被拒绝。
我的数据库没有 TRUSTWORTHY ON,因此我相信我不能使用 EXECUTE AS 来模拟不同的用户,例如使用 EXECUTE AS OWNER 创建 myProc ...(MSDN 参考)
因此,我认为我需要让我的用户也是 msdb 中的用户,但是我可以在角色级别执行此操作,还是需要让我的每个数据库用户也是 msdb 中的用户?
我使用的数据库邮件配置文件设置为公开,所以我认为这与配置文件权限无关。
