2010-02-16 194 views
1

我有一個BizTalk服務器已經按照使用BizTalk日誌傳送實現的BizTalk災難恢復說明進行了配置。SQL代理作業失敗

Executed as user: DOMAIN\User. SQL Server Network Interfaces: Error getting enabled protocols list from registry [xFFFFFFFF]. [SQLSTATE 42000] (Error 65535) OLE DB provider "SQLNCLI10" for linked server "SQL01" returned message "Login timeout expired". [SQLSTATE 01000] (Error 7412) OLE DB provider "SQLNCLI10" for linked server "SQL01" returned message "A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.". [SQLSTATE 01000] (Error 7412). The step failed.

此作業執行本地存儲的過程,基本上是在執行另一個存儲過程:

在備份SQL服務器,把它SQL02,「獲取備份歷史」的工作,下面的錯誤不斷失敗,一個名爲SQL01的鏈接服務器。

當我SQL02在查詢窗口中執行該存儲過程:
EXEC [SQL01].[BizTalkMgmtDb_Prod].[dbo].[sp_GetBackupHistory]
它執行沒有任何錯誤。

當SQL代理作業嘗試執行相同的查詢時,它會失敗並顯示上述錯誤。

爲什麼我可以手動執行該過程並且SQL代理作業不能?

回答

0

檢查sql代理和sql實例用戶應該擁有哪些權限,並且用戶應該對每個實例都是公共的,或者必須擁有所有必需的權限。

在查詢中,您通過擁有權限但sql代理用戶沒有它的用​​戶連接(按照我的理解)。

檢查您的sql服務器配置管理器檢查用戶服務的sql服務器。

+0

我將該作業的所有者作爲未映射到sysadmin角色的域帳戶。因此,該作業以該用戶的身份執行(按照我的理解,儘管非常有限) 這可以在錯誤消息中看到; 「以用戶身份執行:DOMAIN \ User」。 如果我將所有者切換到帳戶出現在郵件中的另一個帳戶。 有趣的是,如果我將所有者切換到自己(該帳戶,我可以運行手動查詢爲)它仍然失敗,同樣的錯誤! – ryancrawcour

2

我有這個相同的問題,並通過確保作業針對作業所有者可以訪問的數據庫運行來解決它。