【发布时间】:2010-01-14 15:16:23
【问题描述】:
我正在开发一个 C# 应用程序,该应用程序在远程服务器 (LAN) 上查询 SQL Server 2008 Express 实例。
当我在我的工作站/开发机器上时,我可以打开 SQL Server Management Studio 并通过 Windows 身份验证连接到 SQL 实例,并且就所有意图和目的而言,这种体验与在“在”服务器上的 SSMS 中工作相同。据我所知,我可以在我的工作站上做任何我可以在服务器上做的事情。
同一台服务器托管 Access 2003 .mdb 文件,该文件在 SQL 实例中设置为链接服务器。
有问题的查询返回通过连接来自 SQL db 和 Access db 的表编译的结果集。
当我“在”服务器上执行查询时,也就是说我在服务器计算机上运行 SQL Server Management Studio,一切都按预期工作。但是,当我尝试从我的开发机器运行相同的查询时,无论是在 SSMS 中还是在尝试运行集成测试或调试应用程序时,我都无法对链接服务器执行任何操作。我可以在 SSMS 中看到它,但是任何执行任何操作的尝试都会导致:
无法为链接服务器“
<DatabaseName>”初始化 OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”的数据源对象。
我查看了许多与此错误相关的线程,并尝试了许多提供程序设置的排列,但都无济于事。
- Access DB 没有密码(我已尝试将安全设置设置为使用名称“Admin”无密码)
- 工作站用户帐户对 Access DB 所在的服务器目录具有完全权限
- 与 Win XP Pro SP3 和现在的 Win Server 2003 相同的行为发生在服务器上
- 客户端的行为与 Win XP Pro SP3 和现在的 Win 7 Pro x32 相同
在服务器上运行良好,从不远程。
非常感谢您的帮助。
【问题讨论】:
-
您是否尝试过使用 sql server 身份验证而不是 NT 身份验证?
-
太棒了!我真的很想知道为什么它有效而集成安全性无效,但是将您的评论作为答案发布,我会标记它。
-
可能想看看这个链接,它提供了原因:dba.stackexchange.com/questions/7111/…
标签: sql-server ms-access linked-server