2010-08-16 54 views
27

我有一個用戶組的Windows帳戶,並試圖執行sp_send_dbmail但出現錯誤:配置文件名稱無效。但是,當我以管理員身份登錄並執行sp_send_dbmail時,它設法發送電子郵件,顯然配置文件名稱存在於服務器上。任何人都可以請求幫助嗎?配置文件名稱無效

回答

37

您需要授予用戶或組使用該配置文件的權限。需要將它們添加到msdb數據庫中,然後在維護郵件安全性時,纔會在郵件嚮導中看到它們。

這裏讀了安全性:http://msdn.microsoft.com/en-us/library/ms175887.aspx

見這裏的郵件程序的列表:http://msdn.microsoft.com/en-us/library/ms177580.aspx

示例腳本「TestUser用戶」使用命名大會管理員郵件「的輪廓。


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 ; 
+0

請問您可以給我示例腳本如何將用戶分配到正確的組? – user384080 2010-08-17 00:38:17

+6

因爲我是一個很好的人;)我爲你提供了這個腳本。 – Sam 2010-08-18 23:18:16

+3

如果您通過某些類型的代碼指定了錯誤配置文件名稱,也會發生此錯誤...即,sp_send_dbmail @profile_name = N'Some配置文件不存在'等等...... 也會引發此錯誤。 – 2014-12-29 21:36:07

13

我得到了同樣的問題也。這就是我所做的。

如果您已經完成授予用戶/組使用配置文件名稱的權限。
1.轉到configuration Wizard of Database Mail
2.選中管理配置文件安全
3.在公共配置文件選項卡,請檢查您的配置文件名稱
4.在專用配置文件選項卡,選擇NT AUTHORITY \ NETWORK SERVICE用戶名和檢查配置文件名稱
5.對於NT AUTHORITY \ SYSTEM用戶名,此時執行#4
6.單擊下一步直到完成。

就是這樣。希望能幫助到你。

+0

這是我的修復!謝謝! – 2015-07-24 13:12:11

+0

...也爲我 - 謝謝:) – nesmoht 2016-06-10 09:30:09

+1

如果您沒有「NT AUTHORITY \ NETWORK SERVICE」作爲特定SQL實例中的用戶,該怎麼辦?我以另一種方式解決了它。看到我上面的答案。 – Fandango68 2017-11-14 01:42:41

0

你是否啓用配置文件的SQL Server代理?這是在DatabaseMail中創建電子郵件配置文件時錯過的常見步驟。

步驟:

  • 在對象資源管理器(SSMS)
  • 單擊屬性上的SQL Server代理右擊
  • 點擊左側導航預警系統選項卡上
  • 啓用郵件配置文件
  • 設置郵件系統和郵件配置文件
  • 單擊確定
  • 重新啓動SQL Server代理