Похоже, база данных находится на общем ресурсе. По умолчанию служба работает под учетной записью Система в сети и, скорее всего, не имеет доступа к общему ресурсу, где находится база данных. Когда вы запускаете его под своей учетной записью, сценарий может получить доступ к базе данных, потому что вы можете получить доступ к общему ресурсу Windows.
Вы захотите настроить службу для запуска с учетной записью службы (т. Е. Создать для этой цели пользователя с именем типа YOURDOMAIN \ svc_timberline), а затем предоставить этой учетной записи права на папку, содержащую база данных.
После этого она должна работать.
Как упоминали некоторые пользователи, подключенные диски настраиваются только через интерактивный сеанс входа в систему , т. Е. Недоступны в фоновых службах. Изучив это, я понял, что, хотя мой DSN относится к сетевому местоположению через UNC, фактический разъем ODBC был разработан для ссылки на подключенный диск .
Поскольку это было невозможно для меня чтобы изменить конфигурацию драйвера в этом случае, я смог обновить свою службу, чтобы сопоставить диск на лету. Таким образом, когда был вызван мой скрипт python, он отобразил диск до вызова ODBC connect, что, в свою очередь, устранило сбой.
Если у кого-то была подобная проблема, я использовал эти функции python для отображения диска в моем скрипте.
Спасибо за помощь!