Imagine que você criou um login para um grupo local do Windows, por exemplomachine_name\group_name
Você reconstrói o servidor (nova máquina física) com o mesmo nome de máquina ( machine_name
), anexa as unidades antigas a ele, incluindo o SQL server. O grupo também foi recriado.
Mas é uma nova instalação de SO. Como tal, o novo machine_name\group_name
terá um novo SID e não funcionará de fato.
Como podemos detectar que o SID do login não é mais válido para sabermos que precisamos recriá-lo?
SELECT SUSER_SID(machine_name\group_name)
ainda está retornando o SID antigo (conforme armazenado em sys.server_principals
). [sys].[sp_validatelogins]
também não relata nada.
Parece que isso SUSER_SID
acontece à sys.server_principals
primeira vista, então não sabemos como detectar isso.