1

我有一个 SQL server 2000 和一个通过链接服务器连接的 Access 数据库 mdb 另一方面,我有一个 c# 中的程序,用于更新基于 SQL 表(用户)的数据库访问中的数据。

运行我的程序时返回以下错误消息:

OLE DB provider 'Microsoft.Jet.OLEDB.4.0' reported an error. Authentication failed. [OLE / DB provider returned message: Can not start the application. Missing information file of the working group or is opened exclusively by another user.] OLE DB error trace [OLE / DB Provider 'Microsoft.Jet.OLEDB.4.0' IDBInitialize:: Initialize returned 0x80040E4D: Authentication failed.]´ .

程序、sql server 和数据库访问都在远程服务器上。

在本地服务器上,通过运行以下命令解决了问题:

"sp_addlinkedsrvlogin 'ActSC', 'false', NULL, 'admin', NULL".

接下来在远程服务器上尝试,没有结果: "sp_addlinkedsrvlogin 'ActSC', true, null, 'user', 'pass'".

在远程服务器上和来自“查询分析器”的 sql 更新语句工作正常。

你能想到可能是什么问题吗?

谢谢!

4

2 回答 2

0

我的猜测是这与用户模拟有关。简单地说:当您使用查询分析器时,您使用的登录名与从 C# 应用程序访问服务器时不同。尝试在您的 C# 应用程序中设置相同的用户名和密码。

您可以通过使用用户名和密码配置链接服务器连接来解决此问题,以便 SQL 服务器忽略任何其他密码/当前用户凭据。只需使用/检查此打印屏幕中的最后一个选项/收音机(忽略中间的登录映射列表)并输入用于所有连接的用户名和密码:

链接服务器属性
(来源:msdn.com

于 2010-05-24T19:25:09.207 回答
0

您无法远程访问 mdw 文件?在提供程序字符串 (Jet OLEDB:System Database=MySystem.mdw) 中指定远程 mdw 文件位置,并允许从本地服务器访问它。

于 2009-10-06T19:04:05.680 回答