DBAtlas · Atlas de operações de banco de dados

15023: User already exists in the current database (o usuário já existe no banco atual)

SQL Server

O que significa?

Ao adicionar um novo usuário ao banco, verificou-se que um usuário com o mesmo nome já existe nesse banco. Também ocorre ao mapear um login para um usuário existente (orphaned users).

Por que acontece?

Normalmente, quando um banco é restaurado a partir de backup em outro servidor, os SIDs dos logins não correspondem aos usuários do banco (orphaned users). Tentar adicionar o mesmo nome novamente com CREATE USER ou configurar manualmente o mapeamento login-usuário gera este erro.

Como resolver

Remapeie o usuário órfão para o login existente: ALTER USER app_user WITH LOGIN = login_name; (recomendado em vez do legado sp_change_users_login). Se o usuário for realmente redundante: DROP USER app_user; Para encontrar órfãos: SELECT dp.name FROM sys.database_principals dp LEFT JOIN sys.server_principals sp ON dp.sid = sp.sid WHERE sp.sid IS NULL AND dp.type IN ('S','U');

Abrir no DBAtlas →

Mais entradas deste banco