Ошибка подключения к SQL Server - имя источника данных не найдено и драйвер по умолчанию не указан - PullRequest
0 голосов
/ 03 февраля 2019

При запуске стороннего разработанного EXE-файла, расположенного в общей папке Windows Server 2012 R2, которая подключается к SQL Server 2012 Express, возникает следующая ошибка:

[Microsoft] [Диспетчер драйверов ODBC] Имя источника данных не найдено и драйвер по умолчанию не указан.

Когда EXE-файл «Запуск от имени администратора», он работает нормально.Но это приложение взаимодействует с Office и другими программами, поэтому при запуске от имени администратора оно помещается в защищенное пространство памяти, которое конфликтует с другими приложениями.Мне нужно, чтобы он нормально открывался, как и раньше.

Эта ошибка возникла только потому, что на клиентских рабочих станциях была установлена ​​Windows 10 1803 и выше.Как ни странно, рабочие станции, обновленные до 1803 и выше, не пострадали.Проблема возникла только при новых установках.

В 1803 году было что-то, что изменило сетевой стек на стороне клиента, что вызвало много разных проблем для соединений SQL, и я видел сотни разных решений, но ни одно из них не работаетв нашем случае.

Клиентские машины подключаются к Server 2012 с использованием учетных записей входа в домен.Каждой учетной записи пользователя домена предоставляются права локального администратора и полные права администратора.Клиентские рабочие станции - обычная установка Windows 10 Pro с антивирусом ESET.При тестировании соединения ODBC оно успешно и работает.Только при запуске программы возникает ошибка.

На стороне сервера у меня есть .... Включено именованных каналов, отключено и удалено SMB1.0

Так что здесь происходит?Почему с 1803 года мы должны работать как администратор, чтобы установить соединение?

1 Ответ

0 голосов
/ 03 февраля 2019

Имя источника данных не найдено

Сначала я бы проверил, определен ли Источник данных ниже "Пользователь" или "Система".Если это пользователь для администратора, то нет доступа к нему, кроме случаев, когда пользователь ранее запускал его, используя опцию «Запуск с правами администратора»

В случае, если он определен как системный DSN, вероятно, пользователь после 1803не имеет достаточных разрешений для доступа к реестру, в котором он хранится, так что это наиболее вероятный сценарий.

Оптимальным является посмотреть, можете ли вы изменить свое соединение, используя OLE или что-то еще, а не ODBC, поэтомуможет быть без DNS, в конце концов попытайтесь определить DSN с тем же именем ниже User с тем же пользователем, который его запускает, и который должен быть прочитан до того, как платформа будет искать то же имя DSN в разделе реестра системы / локального компьютера.

Для устранения более глубоких проблем с разрешениями реестра вы можете использовать прежнюю процедуру Sysinternals, которую можно загрузить с веб-сайта MS, это должно быть выполнено с помощью «Запуск с правами администратора»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...