quinta-feira, março 17, 2016

User already exists in the current database. (Microsoft SQL Server, Error: 15023)

Já aconteceu diversas vezes esse "problema", quando uma base de dados SQL Server é movida\restaurada para um servidor diferente, o usuário na base de dados vai junto, caso você tenha um login com o mesmo nome e você tentar dar uma permissão qualquer para esse usuário a nível de servidor vai ocorrer o seguinte erro:

User, group, or role 'MYUSER' already exists in the current database. (Microsoft SQL Server, Error: 15023)

Isso acontece porque o login a nível de servidor tem um SID diferente do usuário da database, para resolver essa situação basta executar a procedure sp_change_users_login

Exemplo:
use mydata
sp_change_users_login 'AUTO_FIX', 'MYUSER'

Tem um excelente artigo no blog sqlauthority que dá mais detalhes desse procedimemto:

http://blog.sqlauthority.com/2007/02/15/sql-server-fix-error-15023-user-already-exists-in-current-database/


Nenhum comentário: