Migrando logins SQL Server 2008 para versões atuais do SQL Server

No projeto de migração do SQL Server 2008R2 para SQL Server 2014, ao migrar os logins usando o hash atual das senhas, encontrei o erro Invalid value given for parameter PASSWORD. Specify a valid parameter value, ao pesquisar pelo erro verifiquei que as versões abaixo do SQL Server 2008 o hash das senhas utilizava o algoritmo SHA1, já as versões mais atuais utilizam o algoritmo SHA2 512, sendo incompatível a migração dos 1949 logins utilizando o hash das senhas atuais.

Erros ao migrar os logins: Invalid value given for parameter PASSWORD. Specify a valid parameter value.

Quantidade de logins para migrar:

A solução mais simples seria alterar a senha dos logins, no meu caso seria inviável pela quantidade de logins a serem migrados, para resolver este problema utilizei o SQL Server Data Tools, abaixo demonstro como resolver este problema de forma simples.

1 – Logins atuais do SQL Server 2014:

2 – Baixe e instale o SQL Server Data Tools, pode ser a versão 2015 ou 2017, utilizei a 2015:

https://docs.microsoft.com/en-us/sql/ssdt/previous-releases-of-sql-server-data-tools-ssdt-and-ssdt-bi?view=sql-server-ver16#ssdt-for-visual-studio-vs-2015

3 – Crie um um novo projeto usando o Integration Services:

4 – Utilize o componente transfer Logins Task, configure a origem que é o SQL Server 2008, o destino que neste exemplo é o SQL Server 2014 e a opção de todos os logins, no meu exemplo migrei todos e utilizei a opção skipe IFobjectsExists:

5 – Agora iremos executar o projeto para que todos os logins sejam migrados:

6 – Total de logins migrados para o SQL Server 2014:

7 – Hash SHA1 do login Usuario no SQL Server 2008:

IF(SUSER_ID(‘Usuario’) IS NULL)BEGIN CREATE LOGIN [Usuario] WITH PASSWORD = 0x2131214A2123342E274C4E255C4E544E HASHED;/SQL_LOGIN/ END;
SQL

8 – Hash SHA2 512 do login Usuario no SQL Server 2014:

IF(SUSER_ID(‘Usuario’) IS NULL)BEGIN CREATE LOGIN [Usuario] WITH PASSWORD = 0x0200897444663621E635EB01FF63D5BA5DB280C43D7F2A970B85FACDED29F8D8EBA37E22958FDC7416A98A298D7C03E482EA77C7A3DA036CB509B74B3A9E6F1777BA646109CC HASHED;/SQL_LOGIN/ END;
SQL

9 – Desbloqueando logins após a migração:

SELECT name, type_desc, is_disabled,+'ALTER LOGIN '+name+' ENABLE;'
FROM sys.server_principals sp
where is_disabled =0
AND SP.name NOT LIKE '##%##'
AND SP.name NOT LIKE '%NT SERVICE\%'
AND SP.name NOT LIKE '%WIN-%'
AND SP.name NOT LIKE '%NT AUTHORITY\%'
AND SP.type_desc <> 'SERVER_ROLE'
AND SP.name NOT IN ('SA','NT AUTHORITY\SYSTEM');
SQL

Link do gif com o processo realizado: https://1drv.ms/u/s!ApAL5yc5UAJJgeNBJm7klYcRYyVrhA?e=xlXLkU

Leave a Reply

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

search previous next tag category expand menu location phone mail time cart zoom edit close