Не могу подключиться к SQL Server, используя учетную запись 'sa', чего мне не хватает?


20

Я пытаюсь войти в экземпляр 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'

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

Ответы:


23

Как сказал @SpaceManSpiff, не забудьте проверить, включен ли смешанный режим. Кто-то изменил эту настройку для меня, и у меня возникла та же проблема. Вот как это решить:

  1. Войдите в MSSQL Server Management Studio с аутентификацией Windows.
  2. В обозревателе объектов SQL Server Management Studio щелкните правой кнопкой мыши сервер и выберите пункт Свойства.
  3. В разделе «Свойства сервера» выберите страницу «Безопасность».
  4. Выберите «Проверка подлинности сервера» как «Режим проверки подлинности SQL Server и Windows» и нажмите «ОК». Свойства базы данных управления сервером MSSQL
  5. Перезапустите службы SQL, а затем попробуйте войти с подробностями 'sa'.

Источник: http://forums.eukhost.com/f15/login-failed-user-sa-microsoft-sql-server-error-18456-a-12544/


12

Хорошо, я смог выяснить, что происходит (вроде) и получил обходной путь.

Кажется, неделю назад они играли с политикой безопасности Windows. Они добавляли / удаляли разрешения, но они не могут дать мне именно то, что они сделали, потому что они действительно не знали (ой!).

Во всяком случае, я подключился с помощью проверки подлинности Windows (-E переключатель) и запустил следующий запрос:

ALTER LOGIN [sa] WITH PASSWORD='newpassword', CHECK_POLICY=OFF
GO
ALTER LOGIN [sa] ENABLE
GO

Ключ здесь CHECK_POLICY = OFF . Это сделало трюк. Я надеюсь, что это сделает 's' невосприимчивым к будущим изменениям в настройке их домена.

Спасибо за все ваши предложения.


6

Вещи, чтобы проверить

Пароль на учетную запись SA

Смешанный режим включен

Учетная запись SA отключена?

Создайте другую учетную запись SQL и попробуйте ее (так как вы можете войти с помощью -E, вы сможете это сделать)

Протестируйте с использованием соединения ODBC, вы можете создать это соединение, чтобы увидеть, работает ли SA

Да, и всегда ловит все в Windows, перезагружается (серьезно, это помогает моему тестовому серверу SQL после того, как я что-то сделал с ним)


1

У меня была эта проблема несколько лет назад после установки Windows ServicePack (без обновления SQLServer, кроме Windows), SQLServer отказывался от соединений, пока не был установлен SQLServer ServicePack! Я нашел сообщение в журнале событий через несколько часов.

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


Это выглядит многообещающе, я попробую в понедельник и доложу. Спасибо за предложение.
JAG

Наконец, я не пытался установить последний пакет обновления. Смотрите мой собственный «принятый ответ».
JAG

0

Если у вас установлена ​​Management Studio или Management Studio Express, можете ли вы подключить Management Studio к экземпляру с помощью sa?

JR


1
SSMS не установлена, и я бы предпочел не устанавливать ее, если это возможно. Кроме того, подключение с другого компьютера с SSMS не вариант, так как это клиентский сервер. Доступны только инструменты командной строки.
JAG

Если у вас есть Management Studio на другом ПК, даже если он находится на дальнем конце VPN, вы все равно сможете подключиться. Суть в том, чтобы проверить, есть ли что-то нехорошее в настройке сервера или проблема в команде osql.
Джон Ренни

0

Убедитесь, что вы перезапустили службу SQL Server после внесения изменений в реестр?


Не нужно было его менять, потому что оно имело правильное значение.
JAG

0

Кто-то удалил базу данных, которая была базой данных по умолчанию для sa?

Если это проблема, попробуйте

EXEC sp_defaultdb 'sa', 'New default database'

Теоретически, существует только одна база данных, и она существует. Я не запускал эту команду, хотя.
JAG

Обычно это «мастер». Но я думаю, что это не проблема ...
splattne

Я только что попробовал, но без разницы. Спасибо, в любом случае.
JAG

0

Если вы устанавливаете SQL Express 2014, вам придется сделать несколько вещей, чтобы устранить эту ошибку, если вы попытаетесь войти в систему с учетной записью [sa].

  1. Учетная запись "sa" станет отключенной. Поэтому вам необходимо переключить учетную запись с отключенной на включенную в разделе статуса учетной записи.

  2. На сервере должна быть включена аутентификация windows и sql server. По умолчанию включена только проверка подлинности Windows.

  3. Сбросить пароль (см. код ниже; в ServerFault есть ошибка, из-за которой код не отображается при использовании упорядоченного списка по состоянию на 8.06.2016)

  4. Перезапустите службу Windows для SQL Server.

=========

ALTER LOGIN sa WITH PASSWORD='password', CHECK_POLICY=OFF;
ALTER LOGIN [sa] ENABLE;

0

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

Войти в базу данных с аутентификацией 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, решения для смены пароля не будут работать каждый раз. Я не причина, но это я заметил.


0

Я решил это следующим образом войти в систему с вашей аутентификацией Windows Перейти к свойствам сервера >> Безопасность и изменить аутентификацию сервера


1
Не могли бы вы потратить больше на форматирование (и завершение) вашего ответа? Как это написано, это не очень помогает.
asdmin
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.