DBAtlas · Atlas de operaciones de bases de datos

15023: User already exists in the current database (el usuario ya existe en la base de datos actual)

SQL Server

¿Qué significa?

Al añadir un nuevo usuario a la base de datos, se encontró que ya existe un usuario con el mismo nombre en esa base de datos. También aparece al asignar un login a un usuario existente (usuarios huérfanos).

¿Por qué ocurre?

Normalmente, cuando una base de datos se restaura desde un backup en otro servidor, los SID de los logins no coinciden con los usuarios de la base de datos (usuarios huérfanos). Intentar añadir el mismo nombre de nuevo con CREATE USER, o intentar configurar manualmente la asignación login-usuario, genera este error.

Cómo solucionarlo

Vuelva a asignar el usuario huérfano al login existente: ALTER USER app_user WITH LOGIN = login_name; (recomendado frente al sp_change_users_login legacy). Si el usuario es realmente redundante: DROP USER app_user; Para encontrar huérfanos: 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 en DBAtlas →

Más entradas de este motor