É bastante simples corrigir um único usuário SQL órfão para um login usando:
EXEC sp_change_users_login 'Auto_Fix', 'usuário'
Eu poderia fazer um script disso, mas existe um procedimento armazenado existente que tenta automaticamente corrigir todos os usuários órfãos em um determinado banco de dados?
Ted Krueger ( @onpnt no twitter) escreveu um ótimo script que faz isso. Ele adiciona logins para qualquer usuário sem login e executa o auto_fix. Ele até escreveu um que inclui a correção de logins do Windows:
http://blogs.lessthandot.com/index.php/DataMgmt/DBAdmin/fixing-orphaned-database-users
Claro que se você quiser testá-lo primeiro (ou simplesmente realizar uma auditoria) você pode comentar as linhas de ação (
EXEC
) e apenas imprimir os resultados.com base no script acima, podemos corrigir todos os usuários em uma instância usando sp_MSForeachdb assim
espero que ajude
Abaixo está o script simples que faz o trabalho perfeitamente -
Este seria um ótimo caso de uso para usar o comando dbatools Repair-DbaDbOrphanUser
Primeiro você pode identificar os usuários órfãos
e, em seguida, resolvê-los com
Para corrigir usuários órfãos de um único banco de dados para todos os usuários