Не могу подключиться к SQL Server, используя учетную запись 'sa', чего мне не хватает?
Я пытаюсь войти в экземпляр SQL Server 2005 Express, используя следующую команду:
osql -S .\INSTANCE -U sa -P password
Я получаю ошибку: не удалось войти в систему для пользователя 'sa'.
Я могу просто подключиться с помощью ключа -E. Я должен добавить, что это работает в течение нескольких месяцев. Я думаю, что кто-то что-то изменил, но я не могу понять, что это такое.
Вот что я попробовал:
Войдите в систему, используя аутентификацию Windows и изменив пароль sa:
sp_password NULL, новый пароль, 'sa'
Включение входа 'sa':
ALTER LOGIN sa ENABLE; GO ALTER LOGIN sa WITH PASSWORD = 'новый пароль'; ИДТИ
Проверил реестр Windows, чтобы убедиться, что смешанная аутентификация включена. Значение было правильным: LoginMode = 2
Что еще я должен проверить? Заранее спасибо.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Это Windows 2003 Server. У них включены некоторые политики паролей, я помню, что мне нужно было изменить пароль по умолчанию 'sa', который мое приложение использует при установке SQL Server, на другой, более сложный.
Я подключаюсь с помощью VNC, поэтому я не могу использовать SSMS
Мое приложение может подключиться с использованием другого имени входа SQL Server, но без 'sa'
Наконец, если мы не найдем решение, я удалю этот экземпляр и установлю его снова, но мне бы очень хотелось выяснить, в чем проблема. На всякий случай, если это случится снова и просто ради любопытства.
11 ответов
Хорошо, я смог выяснить, что происходит (вроде) и получил обходной путь.
Кажется, неделю назад они играли с политикой безопасности Windows. Они добавляли / удаляли разрешения, но они не могут дать мне именно то, что они сделали, потому что они действительно не знали (ой!).
Во всяком случае, я подключился с помощью проверки подлинности Windows (-E переключатель) и запустил следующий запрос:
ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF
GO
ALTER LOGIN [sa] ENABLE
GO
Ключ здесь CHECK_POLICY = OFF. Это сделало трюк. Я надеюсь, что это сделает 's' невосприимчивым к будущим изменениям в настройке их домена.
Спасибо за все ваши предложения.
Как сказал @SpaceManSpiff, не забудьте проверить, включен ли смешанный режим. Кто-то изменил эту настройку для меня, и у меня возникла та же проблема. Вот как это решить:
- Войдите в MSSQL Server Management Studio с аутентификацией Windows.
- В обозревателе объектов SQL Server Management Studio щелкните правой кнопкой мыши сервер и выберите пункт Свойства.
- В разделе "Свойства сервера" выберите страницу "Безопасность".
- Выберите "Проверка подлинности сервера" как "Режим проверки подлинности SQL Server и Windows" и нажмите "ОК".
- Перезапустите службы SQL, а затем попробуйте войти с подробностями 'sa'.
Источник: http://forums.eukhost.com/f15/login-failed-user-sa-microsoft-sql-server-error-18456-a-12544/
Вещи, чтобы проверить
Пароль на учетную запись SA
Смешанный режим включен
Учетная запись SA отключена?
Создайте другую учетную запись SQL и попробуйте ее (так как вы можете войти с помощью -E, вы сможете это сделать)
Протестируйте с использованием соединения ODBC, вы можете создать это соединение, чтобы увидеть, работает ли SA
Да, и всегда ловит все в Windows, перезагружается (серьезно, это помогает моему тестовому серверу SQL после того, как я что-то сделал с ним)
У меня была эта проблема несколько лет назад после установки Windows ServicePack (без обновления SQLServer, кроме Windows), SQLServer отказывался от соединений, пока не был установлен SQLServer ServicePack! Я нашел сообщение в журнале событий через несколько часов.
Я думаю, что они сделали это, потому что они знали, что существует большая дыра в безопасности, и хотели заставить всех администраторов установить пакет. Однако, так как это было некоторое время назад, я не знаю точных версий и так далее. Я бы порекомендовал вам дважды проверить журнал событий и установить все / новейшие пакеты обновления.
Если вы устанавливаете SQL Express 2014, вам придется сделать несколько вещей, чтобы устранить эту ошибку, если вы попытаетесь войти в систему с учетной записью [sa].
Учетная запись "sa" станет отключенной. Поэтому вам необходимо переключить учетную запись с отключенной на включенную в разделе статуса учетной записи.
На сервере должна быть включена аутентификация windows и sql server. По умолчанию включена только проверка подлинности Windows.
Сбросить пароль (см. код ниже; в ServerFault есть ошибка, из-за которой код не отображается при использовании упорядоченного списка по состоянию на 8.06.2016)
Перезапустите службу Windows для SQL Server.
=========
ALTER LOGIN sa WITH PASSWORD='password', CHECK_POLICY=OFF;
ALTER LOGIN [sa] ENABLE;
Если у вас установлена Management Studio или Management Studio Express, можете ли вы подключить Management Studio к экземпляру с помощью sa?
JR
Спасибо, это та статья, которую я искал. Кстати, могу ли я узнать, что вы используете для своего замечательного и быстрого веб-сайта? Я также планирую создать простой веб-сайт для своего бизнеса, но мне нужна рекомендация по домену и хостингу. Я слышал, что у asphostportal хорошая репутация в этом отношении. Можете ли вы их порекомендовать или есть альтернативы?
Убедитесь, что вы перезапустили службу SQL Server после внесения изменений в реестр?
Кто-то удалил базу данных, которая была базой данных по умолчанию для sa?
Если это проблема, попробуйте
EXEC sp_defaultdb 'sa', 'New default database'
Я решил это следующим образом войти в систему с вашей аутентификацией Windows Перейти к свойствам сервера >> Безопасность и изменить аутентификацию сервера
Иногда вход в систему отключен из-за множества неправильных паролей или любого нарушения политики. Итак, что мы можем сделать, это просто войти в систему с аутентификацией окна, изменить пароль и снова включить авторизацию.
Войти в базу данных с аутентификацией Windows
Запустить запрос:
ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF
GO
ALTER LOGIN [sa] ENABLE
GO
Использование CHECK_POLICY является обязательным, поскольку оно указывает, что политики паролей Windows на компьютере, на котором работает SQL Server, должны применяться при этом входе в систему. По умолчанию установлено значение "ВКЛ.", Когда мы отключаем его, он без проблем изменит пароль. Позже вы можете ON
ПРИМЕЧАНИЕ: что я заметил, что когда CHECK_POLICY включен в GUI SSME, решения для смены пароля не будут работать каждый раз. Я не причина, но это я заметил.