15023: User already exists in the current database
SQL ServerЧто это значит?
При добавлении нового пользователя в базу данных обнаружено, что пользователь с таким же именем в этой базе данных уже существует. Также появляется при сопоставлении имени входа с существующим пользователем (потерянные пользователи, orphaned users).
Почему возникает?
Обычно при восстановлении базы данных из бэкапа на другом сервере 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');
Ещё по этой СУБД
- 8114Error converting data type X to Y
- 1204The instance of the SQL Server Database Engine cannot obtain a LOCK resource
- 3906Failed to update database because the database is read-only
- 18452Login failed. The login is from an untrusted domain and cannot be used with Windows authentication
- 605Attempt to fetch logical page belongs to a different allocation unit
- 4922ALTER TABLE ALTER COLUMN failed because one or more objects access this column
- 7202Could not find server 'name' in sys.servers