45

我有一个用户组的 Windows 帐户并尝试执行 sp_send_dbmail 但收到错误:

配置文件名称无效。

但是,当我以管理员身份登录并执行 sp_send_dbmail 时,它设法发送了电子邮件,因此很明显配置文件名称确实存在于服务器上。

4

5 回答 5

46

您需要授予用户或组使用配置文件的权限。需要将它们添加到 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 ;
于 2010-08-17T00:21:44.897 回答
27

我也遇到了同样的问题。这是我所做的:

如果您已经授予用户/组使用配置文件名称的权限。

  1. 进入数据库邮件配置向导
  2. 勾选管理个人资料安全
  3. 在公开个人资料选项卡上,检查您的个人资料名称
  4. 在私人配置文件选项卡上,选择 NT AUTHORITY\NETWORK SERVICE 作为用户名并检查您的配置文件名称
  5. 这次为 NT AUTHORITY\SYSTEM 用户名执行 #4
  6. 单击下一步直到完成。
于 2015-01-27T05:43:51.987 回答
5

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

脚步:

  • 在对象资源管理器 (SSMS) 中右键单击 SQL Server 代理
  • 点击属性
  • 单击左侧导航中的警报系统选项卡
  • 启用邮件配置文件
  • 设置邮件系统和邮件配置文件
  • 点击确定
  • 重新启动 SQL Server 代理
于 2017-11-14T01:40:52.530 回答
2

配置文件名称无效 [SQLSTATE 42000](错误 14607)

在我将作业脚本从旧 SQL 服务器复制到新 SQL 服务器后,这发生在我身上。在 SSMS 中的管理下,新 SQL Server 中的数据库邮件配置文件名称不同。我所要做的就是更新作业脚本中的名称。

于 2019-01-03T17:56:44.010 回答
0

就我而言,我在服务器之间移动一个 SProc,而我的 TSQL 代码中的配置文件名称与新服务器上的配置文件名称不匹配。

更新 TSQL 配置文件名称 == 新的服务器配置文件名称为我修复了错误。

于 2018-07-03T16:02:12.457 回答