Na hora de logar, cuidado com os (in)sensitives!


Insensitive
Pra quem não sabe o que é sobre o que é case (in)sensitive clique aqui
Olá,

Agorinha recebi um pedido pra criação de login/senha.

Código:

CREATE LOGIN UserAPP WITH PASSWORD = 'UserAPP$1_.', CHECK_POLICY=OFF

E concedi as permissões necessárias para o programador (aqui chamado de bro) realizar o teste em desenvolvimento.
No telefone:

Eu: testa aí por favor.
Bro: cara, não deu certo não.
Eu: Fiz o teste em minha máquina e funcionou…(carregando o errorlog)
Bro: Aqui continua dando erro, olha, tentei cinco vezes. O login no SQL Server é INSENSITIVO né?
Eu: Depende do Collate do servidor SQL, aí no caso de desenvolvimento, é Latin1_General_CI_AI, que é insensitivo.
Bro: Cara, então não sei o que é, na boa, não consigo logar.
Eu: *depois de ler o errorlog* e a senha, como é que tá? Tudo em minúsculo?
Bro: sim, porque?

Pedi pra que ele capitalizasse o que precisa ser capitalizado (algumas letras da senha estão em maiúsculo).
Aí vem a pergunta mais que óbvia: Mas a instância não é case insensitive?

É sim! Nesse caso especificamente, tanto faz se o login estiver UserAPP, USERAPP,UsErApP, ambos vão funcionar, exceto se o collate do servidor estiver configurado de algum modo para SENSITIVE. No caso de senhas, por funcionamento interno do SQL Server (leia-se, transformação da senha para hash, que é um procedimento interno que garante segurança das autenticações) seu texto SERÁ SENSITIVO independente do seu collate ou da versão do SQL Server.

Curiosidade leve, mas, pode ser útil pra alguém 🙂


2 responses to “Na hora de logar, cuidado com os (in)sensitives!”

Leave a Reply

Your email address will not be published. Required fields are marked *