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