Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Провайдер Microsoft.ACE.OLEDB.12.0 работает только для пользователей sysadmin  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
В целом провайдер
Microsoft.ACE.OLEDB.12.0
работает и открывает файлы

Галочка DisallowAdHocAccess убрана, в реестре значение 0.

Но работает только для пользователей sysadmin.

Как сделать так, что бы работало "для других пользователей в том числе МсСКЛ аутонтификация".
?
7 фев 13, 19:19    [13893623]     Ответить | Цитировать Сообщить модератору
 Re: Провайдер Microsoft.ACE.OLEDB.12.0 работает только для пользователей sysadmin  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Ошибка если что

MSSQL2008
Ad hoc access to OLE DB provider 'Microsoft.ACE.OLEDB.12.0' has been denied. You must access this provider through a linked server.
7 фев 13, 20:36    [13893802]     Ответить | Цитировать Сообщить модератору
 Re: Провайдер Microsoft.ACE.OLEDB.12.0 работает только для пользователей sysadmin  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
автор
Галочка DisallowAdHocAccess убрана, в реестре значение 0.


Сервер рестартован? Полный путь к 0лю какой?
7 фев 13, 22:23    [13894078]     Ответить | Цитировать Сообщить модератору
 Re: Провайдер Microsoft.ACE.OLEDB.12.0 работает только для пользователей sysadmin  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
pkarklin
автор
Галочка DisallowAdHocAccess убрана, в реестре значение 0.


Сервер рестартован? Полный путь к 0лю какой?


1) да, рестартован
2) полный путь как именному инстансу (хотя вроде он дефолтный с виду).
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\Providers\MSDASQL]
т. е. НЕ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer и там таких ключей нет.
Я понимаю что Это настрофка "другого провайдера". Более того, я вижу что когда я меняю настройки у провайдера
MSDASQL через интерфейсе - они изменяются в реестре (когда устанавливаю 0 даже просто удаляются).
Когда меняю у провайдера Microsoft.ACE.OLEDB.12.0 я вижу что они сохраняются/поднимаются, но в реестре изменений НЕ вижу.

3)
Собственно
По факту настройки провайдера изменяются вот таким макаром
EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1
GO
EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1
GO

И эти же процедуры вызываются с формы когда жмёшь "ОК" в свойствах провайдера
Я вообще сомневаюсь что для этого провайдера эти свойства сохраняются в реестре, но тупо уже пробую что на различных форумах/собщения СКЛ.ру/

Пытался поиском по реестру найти AllowInProcess и DynamicParameters в других местах НЕ нашёл.

Запросом
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DisallowAdHocAccess', 1
GO

выполнять не стал
- интерфейсом работает и он его выполняет
- когда устанавливал параметры AllowInProcess и DynamicParameters напрямую процедурами рестартанулся сервак (даже остановился, а я руками поднимал службу).

4) работает если шаманить и писать процедуру "with execute as '' " потом давать одному пользователю права на эту процедуру, устанаваливать SET TRUSTWORTHY ON; потом ещё овнера для базы.

5) поиск по тексту который написан в моём втором сообщений на СКЛ.ру может выдать разве что мою тему. Гугл - кучу мусора.
7 фев 13, 23:29    [13894292]     Ответить | Цитировать Сообщить модератору
 Re: Провайдер Microsoft.ACE.OLEDB.12.0 работает только для пользователей sysadmin  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Ещё важный момент, что если пользователь с правами sysadmin (мой пользователь, а не пользователь приложения), то всё работает на ура.
Как я понимаю решение с DisallowAdHocAccess для тех у кого вообще не работает. Тем более у меня "другой провайдер у которого нет настроек в реестре (они где-то в другом месте)".
7 фев 13, 23:32    [13894300]     Ответить | Цитировать Сообщить модератору
 Re: Провайдер Microsoft.ACE.OLEDB.12.0 работает только для пользователей sysadmin  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
NIIIK,

Не надо делать через студию или скриптами. Добавь ключ с типом DWORD вручную, только к нужному инстансу http://www.sqlservercentral.com/Forums/Topic652343-149-1.aspx
7 фев 13, 23:43    [13894329]     Ответить | Цитировать Сообщить модератору
 Re: Провайдер Microsoft.ACE.OLEDB.12.0 работает только для пользователей sysadmin  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Перезапустил редактор реестра, нашёл ключ для этого провайдера, стот 0, но когда устанавливаешь 0 с интерфейса этот параметр удаляется.
Когда ставишь 1 появляется, когда меняешь вручную на 0, потом открываешь свойства в SSMS - там 0.
7 фев 13, 23:45    [13894331]     Ответить | Цитировать Сообщить модератору
 Re: Провайдер Microsoft.ACE.OLEDB.12.0 работает только для пользователей sysadmin  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Тут

Первая ссылка
нашёл что-то из полезного только вот это
И то на второй странице

(с трудом выдрал ссылку)

В целом для этого провайдера я не вижу "шаманств с реестром".
Но ключ DisallowAdHocAccess для провайдера Microsoft.ACE.OLEDB.12.0 уже есть и установлен в значение 0
Думаю что он "для нужного инстанса"
1) потому что он синхронизируется с тем что показывает интерфейс
2) есть только в этом месте для этого провайдера.
7 фев 13, 23:58    [13894371]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить