Eu tenho usado script baseado no script da Microsoft EXEC sp_help_revlogin
para sincronizar nomes de usuário e senhas do SQL Server entre hosts. Isso tem funcionado bem há muito tempo no SQL Server 2008 R2, mas com o planejamento de nossa mudança para o SQL Server 2014, encontrei um obstáculo.
Eu tenho três máquinas SQL Server 2014 de preparo. Em todos os servidores eu executo o seguinte comando:
CREATE LOGIN [TestAccount]
WITH PASSWORD = N'1234567890',
DEFAULT_DATABASE = [master],
CHECK_EXPIRATION = OFF, CHECK_POLICY = OFF
Para dois deles, recebo um comando "Criar" gerado de:
CREATE LOGIN [TestAccount]
WITH PASSWORD = 0x010075DDCA54FCEF12CB11C4E64040E877B9FF5872C41EB98095 HASHED,
SID = 0xCA78345104805C4E89004969D05D551B,
DEFAULT_DATABASE = [master],
CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF
Legal. Até agora tudo bem. Mas, no terceiro servidor, recebo um comando "Criar" de:
CREATE LOGIN [TestAccount]
WITH PASSWORD = 0x02002F6CB52E7F571AD422689021EB9EC1BE2AB4576AE6EC12485333A4CB892A9197B440E1471376A5AAC5160847F636A637D1F499880D7653ABC4DB4714746856E01DE41E09 HASHED,
SID = 0x19337EA32254A64F8FC018474B58DBA5,
DEFAULT_DATABASE = [master],
CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF
O que não funciona. O hash é muito grande.
Existe algum sinalizador de nível de compatibilidade ou algo que de alguma forma eu tenha ativado neste servidor que está gerando hashes de senha antiquados ou algo assim?
Dando a marca de seleção para Ryan como ele estava certo. Na verdade, eu estava me conectando à instância errada instalada nas mesmas máquinas físicas das instâncias do SQL Server 2014. Eu estava muito cansado na noite de sexta-feira.