个人资料名称无效

use*_*080 35 sql-server sql-server-2008

我有一个用户组的Windows帐户,并尝试执行sp_send_dbmail但收到错误:配置文件名称无效.但是,当我以管理员身份登录并执行sp_send_dbmail时,它设法发送电子邮件,显然服务器上存在配置文件名称.任何人都可以请求帮助吗?

Sam*_*Sam 41

您需要授予用户或组权限才能使用该配置文件.需要将它们添加到msdb数据库中,然后在维护邮件安全性时,您将在邮件向导中看到它们可用.

在这里阅读安全性:http: //msdn.microsoft.com/en-us/library/ms175887.aspx

请在此处查看邮件程序列表:http: //msdn.microsoft.com/en-us/library/ms177580.aspx

'TestUser'的示例脚本使用名为'General Admin Mail'的配置文件.


USE [msdb]
GO
CREATE USER [TestUser] FOR LOGIN [testuser]
GO
USE [msdb]
GO
EXEC sp_addrolemember N'DatabaseMailUserRole', N'TestUser'
GO

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
    @profile_name = 'General Admin Mail',
    @principal_name = 'TestUser',
    @is_default = 1 ;
Run Code Online (Sandbox Code Playgroud)

  • 因为我是一个很好的人;)我已经为你提供了这个脚本. (7认同)
  • 如果您通过某些类型的代码指定了错误的配置文件名称,也会发生此错误...即,sp_send_dbmail @profile_name = N'Some配置文件"不存在",等等...也会抛出此错误. (3认同)
  • 作为单挑,如果/当您只是忘记让SQL Server代理可以访问SQL Server的数据库邮件接口时,也会导致同样的错误 - 根据以下链接:http://sqlmag.com/博客/避免失败的,通知运营商,电子邮件错误 (2认同)
  • 看起来像一个死链接:( (2认同)

小智 19

我也遇到了同样的问题.这就是我做的.

如果您已经完成授予用户/组使用配置文件名称的权限.
1.转到数据库邮件配置向导
2.勾选管理配置文件安全性
3.在公共配置文件选项卡上,检查您的配置文件名称
4.在专用配置文件选项卡上,为用户名选择NT AUTHORITY\NETWORK SERVICE并检查您的配置文件名称
5.对于NT AUTHORITY\SYSTEM用户名,这次是#4
.单击Next直到Finish.

就这样.希望能帮助到你.

  • 如果您在特定 SQL 实例中没有“NT AUTHORITY\NETWORK SERVICE”作为用户怎么办?我以另一种方式解决了它。看我上面的回答。 (2认同)
  • 注意:对我来说,我只需要检查我的个人资料名称作为公共个人资料。满足我的开发环境中的需要。不需要 NT AUTHORITY\NETWORK SERVICE 步骤。 (2认同)

Fan*_*o68 5

您是否启用了SQL Server 代理配置文件?这是在 DatabaseMail 中创建电子邮件配置文件时遗漏的常见步骤。

脚步:

  • 右键单击对象资源管理器 (SSMS) 中的 SQL Server 代理
  • 点击属性
  • 单击左侧导航中的警报系统选项卡
  • 启用邮件配置文件
  • 设置邮件系统和邮件配置文件
  • 单击确定
  • 重新启动 SQL Server 代理