Sql-Server
對象“sp_send_dbmail”、數據庫“msdb”的間歇性 EXECUTE 權限被拒絕
我有一個工作每 2 分鐘執行一次,並在收集工作資訊後向使用者發送電子郵件。大多數情況下它是成功的,但每隔幾天它就會因為Execute 權限被拒絕而失敗。失敗後它再次執行就好了。
這是一項通過表格並獲取某些工作的資訊和狀態的工作。不是 SQL Server 作業,而是專有應用程序作業,其資訊儲存在數據庫的表中。它製作一封電子郵件並以 HTML 格式從
msdb.dbo.sp_send_dbmail
.它歸 sa 所有,不手動執行。我在想,由於它每兩天(有時 3 或 4 天)只發生一次,可能是消息的內容太大或其中有一些垃圾阻止
msdb.dbo.sp_send_dbmail
proc 發送。作業或步驟沒有錯誤處理。只有一個步驟:它執行聚合資訊並發送電子郵件的過程。代理日誌與關於權限的問題標題中的內容相同。
SQL Server 設置為記錄失敗的登錄。截至一周前,沒有失敗的登錄。
通過設置維護計劃來清理 MSDB 解決了這個問題。它非常飽滿!等待發布答案,因為我想確保我們經歷了幾個星期而沒有收到Execute permission denied 錯誤。
修改job step以記錄job step的輸出,並將儲存的proc配置為
sp_send_dbmail
由於無法將郵件發送到 SMTP 伺服器,proc 也可能返回拒絕訪問錯誤。