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) поиск по тексту который написан в моём втором сообщений на СКЛ.ру может выдать разве что мою тему. Гугл - кучу мусора.