1

我正在尝试使用Advantage OLE DB提供程序(分别为32位和64位)在SQL Server 2000和SQL Server 2005 x64中向Sybase Advantage数据库创建链接服务器。SQL 2000链接服务器访问被拒绝错误的优势

我一直得到试图浏览目录时出现以下错误,并从两个SQL服务器与OPENQUERY执行查询时:

OLE DB error trace [OLE/DB Provider 'Advantage OLE DB Provider' IUnknown::QueryInterface returned 0x80070005: Access denied.]. 
Msg 7399, Level 16, State 1, Line 1 
OLE DB provider 'Advantage OLE DB Provider' reported an error. Access denied. 

下面的堆栈溢出的问题和答案帮我上解决这个问题SQL Server 2005的64:

Advantage to SQL 2008 Linked Server Access Denied Error

不过,我仍然得到拒绝访问 SQL Server 2000中的错误,尽管如上所述设置Allow inprocess

两个链接的服务器使用相同的数据源,登录凭证和服务器选项。任何帮助是极大的赞赏。

回答

0

尝试在查询分析器中运行查询。您应该看到返回的Advantage特定的OLE DB错误。例如:

服务器:消息7399,级别16,状态1, 行1 OLE DB提供程序 '优势OLE DB 提供' 报告了一个错误。
[OLE/DB提供程序返回消息: 错误7078:优势数据库 服务器无法对用户进行身份验证。 确保用户名和密码 正确无误。 axServerConnect
AdsConnect]

在这种情况下,它是一个糟糕的用户名​​/密码

+0

感谢埃德加。我尝试从SQL 2000服务器上的查询分析器以及客户端计算机上的SQL Management Studio执行查询,无论如何我都会得到相同的错误。我在我的问题中更新了错误消息,以包含原本遗漏的一行。 – Nimrod

+1

鉴于IUnknown :: QueryInterface,我怀疑SQL Server可能无法找到OLE DB提供程序或无法加载它。 A)检查注册表HKLM \ Software \ Microsoft \ MSSQLServer \ Providers。从顶层向下确保AllowInProcess设置为1. B)使用Process Monitor(来自sysinternals)并对提供程序ADSO​​LEDB.dll和ACE32.dll进行筛选,并查看它是否曾被加载过。 – Edgar

相关问题