Netbeans + SQL Server Management Studio. Проблемы с подключением.

Home » jdbc » Netbeans + SQL Server Management Studio. Проблемы с подключением.
jdbc, ошибки Комментариев нет

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

Итак, все началось с того, что вернувшись к разработке на Java я решил запустить один из проектов использующих JDBC для подключения к базе данных и обнаружил что подключения не состоялось. Проект выкинул мне стандартное исключение.
Ситуация усугубилась тем, что я забыл пароль системного администратора базы Microsoft Server Management Studio(логин по умолчанию — sa).
Сначала я попытался создать нового пользователя, или как это именуется в Sql- новое имя входа. Все поля кроме логина и пароля я оставил -по умолчанию(в чем как я позже понял и была моя ошибка).
Далее я пытался в NetBeans создать новое соединение с базой, используя этого, нового юзера(службы-> правой по базы данных, ->создать новое соединение). Далее, на первом шаге я выбирал драйвер (у меня это был SQL Express 2005) далее, название своей базы данных, логин, пароль, порт -1433, адрес(я использовал не localhost а название своего компа), имя экземпляра в моем случае пустое.
В общем настроек было не так много, поэтому когда я получил сообщение об ошибке меня это немного обескуражило и пришлось копать.

невозможно соединиться с jdbc Ошибка: “null. Проверьте свойства соединения. Убедитесь, что на сервере запущен экземпляр SQL Server и он принимает TCP/IP-соединения по порту. Убедитесь, что TCP-соединения по этому порту не блокируются брандмауэром

Задействован ли TCP?

Первое что следовало проверить это TCP-соединение.
Чтобы проверить соединение SQL сервера нужно воспользоваться утилитой SQL Server Configuration Manager, чтобы ее найти и запустить можно воспользоваться стандартным поиском вашей ОС.(Эта утилита стандартная для Microsoft, и она у вас наверняка имеется)
(ищем файлик SQLServerManager.msc и запускаем его)
Там проверяем:
Сетевая конфигурация-> протоколы
Смотрим, чтобы TCP/IP был включен, если не так, включаем его!
Итак, мне это не помогло и я стал копать дальше, я решил попробовать соединиться для начала все-таки используя имя входа sa, то есть сисадминское.
Для этого я восстановил пароль к sa, с помощью командной строки

Восстанавливаем(меняем)
1. Откройте командную строку сервера и введите команду osql –L
2. Скопируйте полное название SQL Server и введите: OSQL -S <вставьте_названиесервера_тут> -E
3. Выполните следующий запрос: sp_password NULL, ‘<вставьте_новый_пароль_тут>’, ’sa’
GO

Подробнее тут http://ru.wikihow.com/%D1%81%D0%B1%D1%80%D0%BE%D1%81%D0%B8%D1%82%D1%8C-%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8C-SA-%D0%B2-Sql-Server

Настройка пользователя (роли) в Microsoft SQL Server Management Studio

И вот, восстановив права, я решил проверить результат. В Microsoft SQL Server Management Studio я выбрал сервер, правой->соединить. Проверку подлинности выставил не windows, а sql Server. Ввел логин и пароль и вуаля! Результат!
Далее, я в свои настройки в Netbeans ввел уже данные пользователя sa. Соединение успешно создалось.

В чем была проблема нового пользователя? Ларчик просто открывался.
Я поменял на своего нового пользователя — снова не удается подключится.
Стало очевидно, что дело вовсе не в драйвере и не в порте и не в протоколе, а в правах доступа ново-созданного пользователя.

И вот, начались новые эксперименты. Метод Тыка. Танец с бубном. Шаманизм. Подбор.
Результат шаманизма и магии не заставил себя долго ждать. Дело оказалось в опции ролей пользователя.
(выбираете пользователя, правой, свойства, роли сервера, а там- нужна галочка напротив sysadmin ) Конечно же, наверняка роли можно настроить наиболее тонко, и проблему можно решить иначе. Но для меня это послужило решением проблемы.

Вывод:

Если возникают проблемы с соединением Netbeans Java Project- Microsoft SQL Server Management Studio, в первую очередь следует проверять настройки соединения используя основного пользователя SQL сервера — sa. В случае, если настройки верны, а имя входа не работает, логично, что проблема в имени входа, а не в настройках подключения!=)
И скорее всего проблему можно исправить добавив новому пользователю роль sysadmin.
(решение 100% нубское, но знать о нем стоит)

LEAVE A COMMENT