Я пытаюсь создать связанные серверы в SQL Server 2000 и SQL Server 2005 x64 в базе данных Sybase Advantage с использованием поставщика OLE DB Advantage, 32-разрядной и 64-разрядной соответственно.Преимущество SQL Server Linked Server Access Denied Error
Я постоянно получаю следующее сообщение об ошибке при попытке просмотра каталога и при выполнении запроса с OPENQUERY с обоих серверов SQL:
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.
Следующая Stack Overflow вопрос и ответ помог мне решить эту проблему SQL Server 2005 x64:
Advantage to SQL 2008 Linked Server Access Denied Error
Однако, я все еще получаю доступ запрещен ошибка в SQL Server 2000, несмотря на установку Allow inprocess
, как было предложено выше.
Оба связанных сервера используют один и тот же источник данных, учетные данные и параметры сервера. Любая помощь приветствуется.
Благодаря Edgar. Я попытался выполнить запрос из Query Analyzer на сервере SQL 2000, а также из студии SQL Management на моем клиентском компьютере, и я получаю ту же ошибку независимо. Я обновил сообщение об ошибке в своем вопросе, чтобы включить одну строку, которую я изначально оставил. – Nimrod
Учитывая IUnknown :: QueryInterface, я подозреваю, что SQL Server может оказаться не в состоянии найти поставщика OLE DB или не может его загрузить. A) Проверьте реестр HKLM \ Software \ Microsoft \ MSSQLServer \ Providers. С верхнего уровня вниз убедитесь, что для параметра AllowInProcess установлено значение 1. B) Используйте Process Monitor (из sysinternals) и фильтруйте на провайдере ADSOLEDB.dll и ACE32.dll и посмотрите, загружена ли она когда-либо. – Edgar