Erro de "senha inválida" e resposta lenta à senha digitada no SSMS

Este artigo descreve um problema que ocorre na entrada de senha no SSMS (SQL Server Management Studio) com SQL Server autenticação.

Versão original do produto: SQL Server
Número de KB original: 4038457

Sintomas

Suponha que você use o SSMS 17.2 (ou uma versão mais antiga do programa) para se conectar a qualquer versão do SQL Server usando SQL Server autenticação. Quando você digita a senha, a resposta visual da caixa de senha para suas teclas pressiona no teclado é visivelmente lenta. Além disso, a tentativa de logon falha e uma mensagem de erro "senha inválida" é mostrada, mesmo se você inserir a senha corretamente.

Motivo

Esse problema ocorre porque a API de Proteção de Dados do Windows não pode fazer backup de um MasterKey para um controlador de domínio para o domínio, que contém a conta do Windows usada para iniciar o SSMS.

Solução alternativa

Para contornar esse problema:

Solução

Para corrigir esse problema, identifique e resolva o problema que está impedindo o backup do MasterKey da API de Proteção de Dados do Windows.

Mais informações

As etapas a seguir descrevem o que acontece neste cenário:

  1. Quando você digita um caractere na caixa de senha no SSMS, a função DPAPI (CryptProtectData Windows Data Protection) é chamada para criptografar a senha.

  2. O DPAPI gera inicialmente uma chave forte chamada MasterKey (porque não há um MasterKey válido a ser usado), que é protegido pelas credenciais de logon do usuário e o processo de backup é invocado.

  3. Quando esse processo falha (porque não há dc (controlador de domínio gravável acessível) para o domínio do usuário), um erro é gerado e jogado no aplicativo SSMS.

  4. No código SSMS, esse erro é capturado e não tratado. Como o código não lida com a situação, esse erro não é mostrado ao usuário.

  5. Isso faz com que a senha enviada para o SQL Server seja uma cadeia de caracteres vazia. Quando você encontra esse problema, há dois sintomas:

    • A digitação na caixa de senha é visivelmente lenta devido às tentativas com falha de alcançar um controlador de domínio gravável.

    • O SQL Server relata uma senha inválida em seu log de erros mesmo quando a senha correta é inserida.

Essencialmente, você encontrou o problema documentado no artigo DPAPI MasterKey falhas de backup quando o RWDC não está disponível. A Microsoft alterou o código SSMS para as versões 17.3 e futuras. Portanto, se esse problema for encontrado, o sistema relatará a exceção gerada por DPAPI para um diagnóstico muito mais fácil.

Referências