2010-08-02 3 views
4

Я использую AD Hoc Distribution Queries для передачи данных с MS SQLServer 2008 в MS Access. Процесс запускается с помощью одного оператора SQL:Разрешить специальные запросы рассылки для всех пользователей

INSERT INTO OpenDataSource('Microsoft.Jet.OLEDB.4.0', 'Data Source=C:\temp\target.mdb;User ID=Admin;Password=;')...testtable select * from dbo.testtable 

Чтобы сделать это я установить Специальное распределение параметры запросов к 1 с помощью

sp_configure 'Ad Hoc Distributed Queries', 1 

Все работает прекрасно, пока выполняются оператор с разрешением базы данных sysadmin.

Когда я пытаюсь выполнить оператор как обычный db-пользователя, оператор не работает с сообщением об отказе в разрешении.

Как я могу предоставить всем пользователям возможность выполнять специальные рассылки?

Заранее спасибо

Маркус

+0

Вы играли с настройками реестра, обсуждаемыми здесь? http://www.eggheadcafe.com/software/aspnet/29256297/nonsa-users-get-access-denied-in-ole-db-query.aspx –

+0

К сожалению, это не сработает :( По-прежнему такое же поведение. – marcus

ответ

2

Взятые из EggHeadCafe; кажется, что общее мнение, что это ключ реестра, называется DisallowAdHocAccess; он должен существовать со значением 0 перед пользователями без sa Роль может выполнять специальные распределенные запросы.

В ключе Server\MSSQL.1\Providers\Microsoft.Jet.OLEDB.4.0 добавьте значение DWORD имени DisallowAdHocAccess со значением 0.

Разрешить одноранговый доступ к провайдеру Jet, с помощью реестра (с помощью Management Studio не будет работать, так как он удаляет ключ реестра вместо установки его на ноль, и недостающий ключ реестра интерпретируются как msgstr "не разрешать доступ ad-hoc").

Если вы ранее получили ошибку, прежде чем пытаться снова убедиться, что перезапуск сервера или выполнить команду DBCC FREEPROCCACHE, потому что кажется, что SQL Server не будет проверять ключ еще раз, если вы запускаете один и тот же запрос дважды.

Если у кого есть способ, который не требует редактирования реестра, было бы хорошо его услышать.

Если это все еще не работает, попробуйте ли вы установить связанный сервер? MSDN, Access Specific Linked Server Tutorial

+0

Я использовал то же решение, но с ключом «Microsoft.ACE.OLEDB.12.0». –

Смежные вопросы