DBAtlas · 数据库运维图谱

15023: User already exists in the current database(用户在当前数据库中已存在)

SQL Server

含义

向数据库添加新用户时,发现该数据库中已存在同名用户。将登录名映射到现有用户(孤立用户)时也会出现。

原因

典型情况是数据库从备份还原到另一台服务器后,登录名的 SID 与数据库用户不匹配(孤立用户)。尝试用 CREATE USER 再次添加同名用户,或尝试手动建立登录名与用户的映射,都会引发此错误。

解决方法

将孤立用户重新映射到现有登录名:ALTER USER app_user WITH LOGIN = login_name;(推荐使用此方式而非旧的 sp_change_users_login)。如果该用户确实多余:DROP USER app_user; 查找孤立用户: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');

在 DBAtlas 中打开 →

同一数据库的其他条目