2010-01-14 87 views
1

我正在研究远程服务器(LAN)上查询SQL Server 2008 Express实例的C#应用​​程序。无法查询SQL链接服务器 - >远程访问MS Access,只能在服务器上工作

当我在我的工作站/开发机器上时,我可以打开SQL Server Management Studio并通过Windows身份验证连接到SQL实例,对于所有意图和目的,体验与在服务器上“在服务器上” 。据我所知,我可以在我的工作站上做任何我能在服务器上做的事情。

同一台服务器承载Access 2003 .mdb文件,该文件在SQL实例中设置为链接服务器。

有问题的查询返回通过连接来自SQL数据库和Access数据库的表编译的结果集。

当我在服务器上执行查询时,也就是说我在服务器计算机上运行SQL Server Management Studio时,所有操作都按预期运行。但是,当我尝试从我的开发机器运行相同的查询时,无论是在SSMS中还是尝试运行集成测试或调试应用程序时,我都无法对链接的服务器执行任何操作。我可以看到它在SSMS,但任何试图在执行什么结果:

无法初始化OLE DB提供程序“Microsoft.Jet.OLEDB.4.0”的链接服务器“<DatabaseName>”的数据源对象。

我已经浏览了许多与此错误有关的线程,并尝试了很多提供程序设置的排列,但都无济于事。

  • Access数据库没有密码(我试过设置使用名为“admin” W/O密码的安全性)
  • 工作站用户帐户具有这样Access数据库位于服务器目录的完全权限
  • 相同的行为经历了服务器的Win XP专业版SP3和现在与Win Server 2003的
  • 相同的行为经历了客户端为赢XP专业版SP3和现在与Win 7 Pro的X32

对T的伟大工程他服务器,从不远程。

非常感谢。

+0

您是否尝试过使用SQL Server身份验证而不是NT身份验证? – Burnsys 2010-01-14 18:41:25

+0

太棒了!我真的很想知道为什么这种方式有效,集成安全性不行,但将您的评论发布为答案,我会将其标记出来。 – Jay 2010-01-14 20:02:03

+0

可能想看看这个链接它提供了原因:http://dba.stackexchange.com/questions/7111/local-login-impersonation-not-working-with-a-linked-server – 2013-03-12 22:34:27

回答

1

正如Burnsys所建议的那样,使用SQL Server身份验证而不是NT身份验证似乎可以做到这一点。 为什么的问题似乎是一个悬而未决的问题。

+0

也许适当的权限有没有为NT用户组定义。我不确定SQL Server角色与链接服务器的相互作用是什么,但这正是我开始寻找的地方。 – 2010-02-02 23:51:16