我有一个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 update语句正常工作。
你能想到可能出现的问题吗?
谢谢!
答案 0 :(得分:0)
您无法远程访问mdw文件?在提供程序字符串中指定远程mdw文件位置(Jet OLEDB:System Database = MySystem.mdw)并允许从本地服务器访问它。
答案 1 :(得分:0)
我的猜测是,这与用户模仿有关。简单地说:当您使用查询分析器时,您使用的是与从C#应用程序访问服务器时不同的登录。尝试设置相同的用户名& C#app中的密码。
您可以通过使用用户名和密码配置链接服务器连接来解决此问题,以便SQL Server忽略任何其他密码/当前用户凭据。只需使用/检查此打印屏幕中的最后一个选项/收音机(忽略中间的登录映射列表)并输入用户名&用于所有连接的密码: