DSN, ODBC: как создать DSN с использованием другой учетной записи Windows
Есть ли возможность создать DSN (ODBC для SQL Server), используя учетную запись Windows, отличную от текущей учетной записи для входа на компьютер? Я пытаюсь создать системный DSN для SQL Server, и я хотел бы создать это подключение, используя проверку подлинности Windows, используя мою учетную запись администратора. Я создаю этот DSN, используя мою обычную учетную запись Windows.
5 ответов
Системный DSN по определению применяется ко всему компьютеру независимо от того, какая учетная запись используется, поэтому (если я правильно читаю ваш вопрос) это означает, что (1) ответ "да", и (2) вам понадобится Admin права на создание DSN.
Кстати, вы смотрели как соединения без DSN? Я считаю, что они будут гораздо более подходящими для ваших требований, а также устранят необходимость в настройке клиента перед использованием вашего приложения.
Вы также можете использовать команду "runas" для запуска ODBC Data Source Administrator под вашей учетной записью администратора, когда вы вошли в систему под своей обычной учетной записью. Это позволит вам настроить и протестировать соединение без получения сообщения об ошибке "пользователь не связан с доверенным соединением SQL".
Вот пример команды командной строки:
runas /netonly /user:domain\adminusername "C:\Windows\System32\odbcad32.exe"
Как сказал Джимми, определение DSN не будет привязано к учетной записи администратора, но будет использовать любую учетную запись проверки подлинности Windows, в которую вы вошли, как при последующем использовании подключения. (Таким образом, вам нужно будет снова использовать "runas" для запуска любых программ, которые использовали подключение, если вы не вошли в систему под своей учетной записью администратора.)
Я собираюсь добавить к ответу Mac, что да, это определенно работает, чтобы установить соединение ODBC, и это работает некоторое время. Вероятно, до тех пор, пока аутентификация Kerberos остается активной. К сожалению, это не постоянная аутентификация, которую я бы предпочел для системного DSN. Вот командный файл, который я использую для запуска odbcad32.exe:
net use \\dbserver-host /user:DOMAIN\username
runas /netonly /user:DOMAIN\username C:\Windows\syswow64\odbcad32.exe
Обратите внимание, что это может привести к тому, что вам будет предложено войти в систему дважды, но, похоже, он работает более последовательно, чем сам runas.
Я не верю, что есть возможность сделать это. Использование доверенного соединения NT с SQL Server подразумевает, что при аутентификации на сервере пароль не отправляется и что для аутентификации используется существующий токен NT. Другими словами, SQL Server "доверяет" аутентификации NT. Он будет использовать любого пользователя, вошедшего в систему во время подключения.
Я обнаружил, что использование диспетчера учетных данных Windows работает довольно хорошо. Вы можете добавить учетные данные Windows напрямую. Хитрость в том, что вам нужно иметь полное доменное имя, включая порт, а также полное имя пользователя Active Directory с квалификатором домена, что-то вроде mydb.myinternaldomain.com:1433
и myinternaldomain\myusername
с вашим паролем. Тогда вы можете добавить mydb.myinternaldomain.com
как источник ODBC и окна будут волшебным образом поменять правильные учетные данные. Это также работает для Sql Server Management Studio.
Похоже, что это не работает для не-Windows родных приложений, что вам все еще нужны runas.