DBAtlas · 데이터베이스 운영 아틀라스

15023: User already exists in the current database (현재 데이터베이스에 사용자가 이미 존재)

SQL Server

의미

데이터베이스에 새 사용자를 추가하는 중 같은 이름의 사용자가 이미 해당 데이터베이스에 존재하는 것으로 확인되었다. 로그인을 기존 사용자에 매핑할 때(orphaned user)도 나타난다.

원인

보통 데이터베이스를 백업에서 다른 서버로 복원하면 로그인 SID가 데이터베이스 사용자와 일치하지 않는다(orphaned user). CREATE USER로 같은 이름을 다시 추가하거나 로그인-사용자 매핑을 수동으로 설정하려 하면 이 오류가 발생한다.

해결 방법

orphaned user를 기존 로그인에 다시 매핑한다: ALTER USER app_user WITH LOGIN = login_name; (legacy sp_change_users_login보다 권장). 사용자가 실제로 불필요하다면: DROP USER app_user; orphan 찾기: 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에서 열기 →

같은 데이터베이스의 다른 항목