Вопрос

Мы запускаем часть нашего приложения как службу Windows, и ей необходимо иметь доступ к DSN для импорта через ODBC.Однако, похоже, методом проб и ошибок обнаружено множество ограничений в отношении того, к каким DSN он может получить доступ.Например, кажется, что это не может 1.получить доступ к системному DSN, если только учетная запись, под которой запущена служба, не имеет прав администратора.(Я получаю ошибку отказа в доступе, при попытке подключиться) 2.получить доступ к пользовательскому DSN, созданному другим пользователем (это понятно).3.доступ к файловому DSN по сети

Я читал, что цель файлового DSN — позволить другим компьютерам использовать его для подключения, однако я не могу заставить это работать.

Кто-нибудь знает или знает, где я могу узнать, каковы все правила и ограничения на доступ к DSN при использовании службы Windows.Спасибо

Это было полезно?

Решение

Это где-то между №1 и №2:иногда также необходимы правильные права доступа к файлам.Однажды у меня возникли проблемы с подключением компьютера Vista к DSN DB2, потому что по какой-то причине (возможно, для записи временных файлов;хотя я не знаю, почему он делал это в этом месте, а не в определенном для пользователя), драйверу требовался доступ на запись в каталог, в который IBM установила клиентские двоичные файлы и библиотеки, что было сделано администратором. и находился в корне диска С.

Другие советы

Думаю, три главных правила вы уже сами открыли.:-)

За исключением того, что вам, вероятно, не нужны права администратора для вашей учетной записи службы.IANANA (я не сетевой администратор), но вашей сервисной учетной записи, вероятно, просто необходим доступ для чтения к одному из файлов или каталогов ODBC.

Вы не можете подключиться к подключенным дискам с помощью службы.Подключенный диск должен взаимодействовать с памятью, называемой кучей рабочего стола, которая отслеживает значки на рабочем столе.Службы не имеют доступа к этой памяти.Если вам нужно использовать dsn, создайте systemdsn.лучше было бы использовать строку подключения и сохранить ее в app.config и использовать API шифрования для шифрования имени пользователя и пароля.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top