Sql-Server-2005
使用連結伺服器和從 SQL 代理作業呼叫的儲存過程時,如何修復 SQL Server 2005 中的登錄超時?
我有一個在 ServerA 上執行的 sql 代理作業。該作業執行一個儲存過程ServerA.DatabaseA.dbo.SPROC_A,在這個儲存過程中,有一個查詢從ServerB.DatabaseB.SchemaB.TableB 中選擇數據。從 ServerA 到 ServerB 設置了一個連結伺服器,其安全上下文設置為:“使用登錄名的目前安全上下文進行創建”。當作業執行儲存過程並且儲存過程嘗試從遠端表中進行選擇時,將引發以下錯誤:
Executed as user: domain\user. Named Pipes Provider: Could not open a connection to SQL Server [1450]. [SQLSTATE 42000] (Error 1450) OLE DB provider "SQLNCLI" for linked server "ServerB" returned message "Login timeout expired". [SQLSTATE 01000] (Error 7412) OLE DB provider "SQLNCLI" for linked server "ServerB" returned message "An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.". [SQLSTATE 01000] (Error 7412). The step failed.
我已確保遠端伺服器允許遠端連接並且
$$ domain\user $$login 具有對遠端伺服器和數據庫的適當訪問權限。 有人對此有解決方案嗎?它最初是嘗試通過網路執行 SQL 身份驗證的問題,因此我們創建了域使用者,現在我遇到了這個超時問題。
編輯
我們現在已經在生產伺服器上啟用了命名管道,但我仍然收到錯誤消息。
Executed as user: <domain>\<user>. Named Pipes Provider: Could not open a connection to SQL Server [1450]. [SQLSTATE 42000] (Error 1450) OLE DB provider "SQLNCLI" for linked server "<remote server>" returned message "Login timeout expired". [SQLSTATE 01000] (Error 7412) OLE DB provider "SQLNCLI" for linked server "<remote server>" returned message "An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.". [SQLSTATE 01000] (Error 7412). The step failed.
有任何想法嗎?
SQL 代理將使用共享記憶體連接到本地伺服器。實例將嘗試使用命名管道相互通信。您可以通過在 SQL Server 客戶端網路實用程序 (cliconfg.exe) 中創建別名並將別名設置為使用 TCP 來調整此設置。
錯誤“命名管道提供程序:無法打開與 SQL Server 的連接
$$ 1450 $$.” 讓我想到伺服器 B 沒有啟用命名管道協議(您可以檢查 SQL Server 配置工具)。 您可以在 Management Studio 中無錯誤地執行查詢(連接到伺服器 A 從 B 獲取數據)嗎?