我正在研究远程服务器(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的伟大工程他服务器,从不远程。
非常感谢。
您是否尝试过使用SQL Server身份验证而不是NT身份验证? – Burnsys 2010-01-14 18:41:25
太棒了!我真的很想知道为什么这种方式有效,集成安全性不行,但将您的评论发布为答案,我会将其标记出来。 – Jay 2010-01-14 20:02:03
可能想看看这个链接它提供了原因:http://dba.stackexchange.com/questions/7111/local-login-impersonation-not-working-with-a-linked-server – 2013-03-12 22:34:27