Ошибка "Недопустимый пароль" и медленный ответ на введенный пароль в SSMS

В этой статье описывается проблема, возникающая при вводе пароля в SQL Server Management Studio (SSMS) с проверкой подлинности SQL Server.

Оригинальная версия продукта: SQL Server
Исходный номер базы знаний: 4038457

Симптомы

Предположим, что вы используете SSMS 17.2 (или более раннюю версию программы) для подключения к любой версии SQL Server с помощью проверки подлинности SQL Server. При вводе пароля визуальный отклик поля пароля на нажатие клавиши на клавиатуре заметно замедляется. Кроме того, попытка входа завершается ошибкой и отображается сообщение об ошибке "Недопустимый пароль", даже если пароль введен правильно.

Причина

Эта проблема возникает из-за того, что API защиты данных Windows не может создать резервную копию MasterKey на контроллер домена, который содержит учетную запись Windows, используемую для запуска SSMS.

Обходной путь

Чтобы обойти эту проблему, выполните приведенные ниже действия.

Разрешение

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

Дополнительная информация

Ниже описано, что происходит в этом сценарии.

  1. При вводе символа в поле пароля в SSMS вызывается функция CryptProtectData API защиты данных Windows (DPAPI) для шифрования пароля.

  2. DPAPI изначально создает надежный ключ с именем MasterKey (так как не используется допустимый MasterKey), который защищен учетными данными входа пользователя и вызывается процесс резервного копирования.

  3. Если этот процесс завершается сбоем (из-за отсутствия доступного записываемого контроллера домена для пользовательского домена), создается ошибка, и в приложение SSMS возникает ошибка.

  4. В коде SSMS эта ошибка перехватится и не обрабатывается. Так как код не обрабатывает ситуацию, эта ошибка не отображается пользователю.

  5. Это приводит к тому, что пароль, отправляемый SQL Server, будет пустой строкой. При возникновении этой проблемы возникают два симптома:

    • Ввод пароля происходит заметно медленно из-за неудачных попыток связаться с записываемым контроллером домена.

    • SQL Server сообщает о недопустимом пароле в журнале ошибок, даже если введен правильный пароль.

По сути, вы столкнулись с проблемой, описанной в статье Сбои резервного копирования DPAPI MasterKey, когда RWDC недоступен. Корпорация Майкрософт изменила код SSMS для 17.3 и будущих выпусков. Поэтому при возникновении этой проблемы система сообщит об исключении, которое создается из DPAPI, для гораздо более простой диагностики.

Ссылки