【发布时间】:2010-09-29 00:59:27
【问题描述】:
我刚刚在 MSSQL 2005 中设置了数据库邮件。我已经能够从服务器上的管理员帐户和通过 SQL Server 代理作业发送电子邮件。但是,当我尝试通过仅有权访问我们 Web 应用程序的数据库的登录名发送电子邮件时,我无法发送电子邮件。
设置访问数据库邮件的最佳方式是什么?
我有 2 个 senerios 想要发送电子邮件。
- 通过 SQL Server 代理计划作业以运行存储过程,该过程执行某些过程,然后发送电子邮件。 (这不是问题)
- 有一个从 Web 应用程序调用的存储过程,该应用程序调用另一个可以发送电子邮件的存储过程。 (这是我的权限问题)
可能的解决方案
我发现授予登录权限的唯一方法是将登录名映射到 msdb 数据库并授予 public 和 数据库邮件用户角色。这真的让我很担心,因为我认为这会给 msdb 数据库提供很多访问权限。
-
将我要发送的电子邮件存储在一个表中,然后让 SQL Server 代理作业每隔一段时间查看该表以发送任何排队的电子邮件。这样,Web 应用程序的数据库登录不会执行 [msdb].[dbo].[sp_ send _dbmail] 调用,因此不需要对 msdb 数据库的任何权限。
还有其他解决方案吗?
【问题讨论】:
-
有趣。希望你能得到答案。
标签: sql-server roles database-mail