User, group, or role already exists in the current database

Restaurei um backup e em seguida mapeei meu login para a base de dados… Erro! :(

User, group, or role ‘alexandre.dba’ already exists in the current database(Microsoft SQL Server, Error:15023)

error_15023

A base restaurada já possui o usuário ‘alexandre.dba’ conforme figura acima.

E como fazer o mapeamento? Excluir o usuário? O login? Não!

O procedimento de sistema sp_change_users_login ‘update_one’,’user_name’,’login_name’ faz esse mapeamento.

Update_One – Vincula o USER no banco de dados atual a um LOGIN existente.

Use GUIADBA
Go
Exec sp_change_users_login 'update_one','alexandre.dba','alexandre.dba';

Resolvido!

Se quiser identificar todos os usuários sem login no SQL execute a query abaixo:

Select UserName = name
From sysusers
Where issqluser = 1
And (sid Is not null And sid <> 0x0)
And SUSER_SNAME(sid) is null
Order By name

Esse recurso está disponível até a versão 2014 e será descontinuado em uma nova versão do SQL, a microsoft indica o uso do Alter User que falaremos em outro artigo.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios são marcados com *

Subscribe!

*