2013-05-17 2 views
3

Я новичок в SQL Server. Пожалуйста, помогите мне исправить.Не удается получить доступ к sqlcmd с использованием имени пользователя

Я создал пользователя с паролем в SQL Server Management Studio (2008 R2). Когда я использую sqlcmd с этим пользователем, SQLCMD говорит

C:\Console2>sqlcmd -U admin 
Password: 

Msg 18456, уровень 14, состояние 1, имя_компьютер Сервера, линия 1
Войти Сбой пользователя 'администратор'.

Я могу получить доступ к серверу с помощью этого пользователя с помощью SQL Server Management Studio.

P.S

  • У меня есть два экземпляра SQL Server Management Studio (2008 R2 и 2012). Я могу получить доступ к этому пользователю из обеих версий SQL Server Management Studio.
  • Всякий раз, когда я подключаюсь с помощью sqlcmd и выполняю запрос select @@version, он всегда говорит, что 2012 год, даже я соединяю sqlcmd 2008 R2.

ответ

2

Возможно, на вашем компьютере установлено несколько экземпляров сервера. Некоторые продукты MS устанавливают версию разработчика SQL Server, если вы явно не говорите ей об этом. Итак, если вы явно не указали sqlcmd, к какому экземпляру подключиться, он может подключаться к чему-то, чего вы не ожидаете.

sqlcmd -S servername -d database name -U id 
+0

Спасибо. sqlcmd -S mypc \ sqlexpress -U admin -P admin работает нормально.
Если я пытаюсь подключиться через jdbc, я не работаю, и он говорит: 'java.sql.SQLException: Ошибка входа в систему для пользователя 'admin'.' Строка подключения JDBC 'Connection conn = DriverManager.getConnection (" jdbc: jtds : sqlserver: // localhost: 1433/test1; instance = mypc \\ sqlexpress "," admin "," admin ");' –

+0

Мы столкнулись с той же проблемой с недавно созданным пользователем в sqlcmd. Мы смогли использовать SQL Management Studio, но использовать для получения «login failed для пользователя user1» в sqlcmd. После некоторых методов try и run мы выяснили, что у нашего пароля есть специальные символы, которые не поддерживаются подсказкой cmd, поэтому мы используем эту ошибку. Решение: Используйте все значения в двойных кавычках ("") , например. sqlcmd -S "имя_сервера" -U "имя пользователя" -P "пароль" – Jeevan

2

Попробуйте это:

-S MyServer\MyInstance 

и для базы данных, а также

0

По авторизации по умолчанию не удалось сообщение об ошибке ничего, кроме подключения пользователя клиента не было отказано сервером из-за несоответствия учетные данные для входа в систему. Первой задачей, которую вы можете проверить, является проверка того, имеет ли этот пользователь соответствующие права на этот экземпляр SQL Server и соответствующую базу данных, это хорошо. Очевидно, что если необходимые prvileges не установлены, вам необходимо исправить эту проблему, предоставив соответствующие права для входа этого пользователя. Check out this post, it shows how to trouble-shoot this error.

+0

Спасибо. sqlcmd -S mypc \ sqlexpress -U admin -P admin работает нормально. –

+0

Если я пытаюсь подключиться через jdbc, я не работаю, и он говорит: 'java.sql.SQLException: Ошибка входа в систему для пользователя 'admin'.' Строка подключения JDBC: 'Connection conn = DriverManager.getConnection (" jdbc: jtds : sqlserver: // localhost: 1433/test1; instance = mypc \\ sqlexpress "," admin "," admin ");' –

+0

Выше комментарии принадлежат [email protected] извините, комментарии изменены. –