Usuários órfãos – Gerando o script de CREATE LOGIN com os SIDs

Segurança

Há muito tempo atrás, em uma galáxia distante, escrevi o artigo Usuários órfãos no SQL Server? Evite este problema!, que foi bastante visualizado na época, por apresentar uma solução simples de como evitar que os usuários ficassem órfãos, utilizando o mesmo SID dos logins em várias instâncias do SQL Server, para manter o ‘relacionamento’ entre LOGIN no servidor com o USER do banco de dados.

Como tinha esquecido de apresentar uma forma automática de gerar o script de CREATE LOGIN, (mesmo não recuperando a senha destes logins), segue a minha versão de como gerar este script:

SELECT
'CREATE LOGIN [' + [name] + '] ' +
'WITH PASSWORD = ''senha qualquer'', ' +
'SID = ' + dbo.fn_varbintohexstr([sid])
FROM sys.server_principals
WHERE [type] = 'S'
-- Alguns filtros úteis
AND [name] NOT IN ('sa')
AND [name] NOT LIKE '#%'
AND [name] NOT LIKE '%\%'
ORDER BY [name]

Se tiver alguma ideia de como melhorar este script ou versões alternativas (ex.: PowerShell, SMO), fique à vontade para comentar!

Referências:
Convert binary value to string value

Deixe uma resposta