Консультация № 184277
20.10.2011, 15:07
54.27 руб.
0 6 1
Здравствуйте уважаемые!

Есть MSSQL 2008 R2 и несколько клиентов подключающихся к нему. Есть самописная программа, которая тоже благополучно подключается к этому серверу. И есть программа sqlcmd.exe, с помощью которой хотелось бы производить автоматические регулярные действия. Однако возникла проблема с аутентификацией. Программа запускается так (пример):
>sqlcmd.exe -U домен\имя_пользователя -S имя_сервера -P пароль_пользователя
и в результате я получаю ошибку:
Сообщение 18456, уровень 14, состояние 1, сервер ИМЯ_СЕРВЕРА, строка 1
Login failed for user 'домен\пользователь'.

хотя самописная программа, повторюсь, с теми же логином и паролем, и на том же компьютере, работает в высшей степени восхитительно.
На сервере стоит смешанная аутентификация.

Обсуждение

давно
Профессионал
848
1596
20.10.2011, 16:12
общий
20.10.2011, 16:14
с теми же логином и паролем, и на том же компьютере, работает в высшей степени восхитительно

а прсто
sqlcmd.exe -S имя_сервера
Ввести не пробывали?
Таким образом будет подключаться используя Windows Authentication.
Если же Вы используете конструкцию
sqlcmd.exe -U домен\имя_пользователя -S имя_сервера -P пароль_пользователя
то это уже SQL Server Authentication, вводите логин и пароль, который создан на SQL-сервере.
URL >>
давно
Управляющий
143894
2148
20.10.2011, 17:11
общий
Адресаты:
Глянь расшифровку этой ошибки и действия пользователя по этой ошибке - может поможет.

http://msdn.microsoft.com/ru-ru/library/cc645917.aspx
Об авторе:
Устав – есть устав! Если ты устав – то отдыхай!


давно
Мастер-Эксперт
425
4118
20.10.2011, 18:07
общий
Адресаты:
Цитата: PsySex
Если же Вы используете конструкцию
sqlcmd.exe -U домен\имя_пользователя -S имя_сервера -P пароль_пользователя
то это уже SQL Server Authentication, вводите логин и пароль, который создан на SQL-сервере.

Ого! Какой конфуз. Не зря я не люблю мелкомягких. Они много думают и всё не в ту сторону.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
давно
Мастер-Эксперт
425
4118
20.10.2011, 18:07
общий
Адресаты:
Спасибо!
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
давно
Профессионал
848
1596
20.10.2011, 18:37
общий
Адресаты:
Ну в принципе зачем передавать логин и пароль при вин-аутентификации, Вы же и так уже зашли в домен под своей учеткой :-)
давно
Профессионал
848
1596
21.10.2011, 11:04
общий
это ответ
Здравствуйте, sir Henry!
Если утилита sqlcmd.exe запускатеся с параметрами -U, -P, т.е. передает серверу логин и пароль, то следует понимать, что таким образом используется SQL Server Authentication, т.е. такой пользователь должен быть определен в самом SQL сервере.
Если же Вы хотите использовать Windows Authentication, то подключаться следует указывая только имя сервера, поскольку пользователь уже совершил вход в домен.
sqlcmd.exe -S имя_сервера
Также если нужно использовать sqlcmd.exe с Windows Authentication, но от имени другого пользователя, то следует подключаться используя утилиту RunAs.exe
runas.exe /noprofile /netonly /user:domain\user "sqlcmd.exe -S имя_сервера "
Форма ответа