SharePoint 2010 BCS忽略连接字符串中的用户名/密码

时间:2010-04-19 20:47:47

标签: sql-server 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 个答案:

答案 0 :(得分:1)

您可以使用集成安全性 XOR 进行SQL身份验证。但你不能混合它们。指定Integrated Security=SSPI后,将忽略您的用户名和密码,因为将使用集成安全性。如果要指定SQL身份验证用户和密码,请删除“集成安全性”部分。

与任何集成的身份验证连接一样,远程服务器属于约束委派限制,并且它们以匿名身份进行身份验证。要使NT模拟凭据流到下一个跃点(SQL Server),必须启用约束委派,请参阅: