【问题标题】:can't query SQL linked server -> MS Access remotely, only works on server无法远程查询 SQL 链接服务器 -> MS Access,仅适用于服务器
【发布时间】: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


【解决方案1】:

按照 Burnsys 的建议,使用 SQL Server 身份验证而不是 NT 身份验证似乎可以解决问题。问题的原因似乎是一个悬而未决的问题。

【讨论】:

  • 可能没有为 NT 用户组定义适当的权限。我不确定 SQL Server 角色与链接服务器的交互是什么,但这就是我开始寻找的地方。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多