2010-04-19 46 views
0

這是我的場景。SharePoint 2010 BCS忽略連接字符串中的用戶名/密碼

我在一臺服務器上運行SharePoint 2010,SQL Server在另一臺服務器上運行。兩臺機器都在同一個域中,但涉及的登錄對於每臺機器都是本地的。如果這有什麼不同,SharePoint將作爲NT Authority \ Network Service運行。

我已經創建了一個從刪除SQL Server中提取數據的BCS。連接字符串如下所示:Data Source={0}; Initial Catalog={1};User Id={2}; Password={3}; Integrated Security=SSPI。我已確認連接字符串格式正確,只要所有{x}都被替換了。

只要您從運行在同一臺計算機上的瀏覽器(即託管SharePoint的計算機)訪問SharePoint網站,就能正常工作。一旦你從另一臺機器上的瀏覽器連接到它,它會失敗。

在SQL Server上拍取分析器會發現,當「本地」訪問SharePoint時,進行查詢的用戶是登錄帳戶。當它遠程運行時,用戶是「匿名」的。由於帳戶權限,前者成功,後者失敗。在任何情況下,用戶實際上都不是連接字符串中提供的用戶。

This answer表明問題可能與連接池有關,但並未幫助我解決問題。

所以,簡而言之,我怎樣才能得到這個BCS實際上兌現連接字符串用戶名/密碼對?或者,如果失敗了,我如何才能達到同等的目標?服務器設置(一個是SharePoint,另一個是SQL Server)是不可協商的;不幸。

回答

1

您可以擁有集成安全性XOR您可以擁有SQL身份驗證。但是你不能混用它們。一旦您指定Integrated Security=SSPI,您的用戶名和密碼將被忽略,因爲將使用集成安全性。如果您想指定一個SQL身份驗證用戶和密碼,請刪除「集成安全性」部分。

與任何集成身份驗證連接一樣,遠程服務器屬於受限制的委託限制,它們以匿名方式進行身份驗證。要啓用NT假冒的憑證流入到下一跳(在SQL Server),約束委派必須啓用,請參閱:

相關問題