15023: User already exists in the current database
SQL ServerWas bedeutet das?
Beim Hinzufügen eines neuen Benutzers zur Datenbank wurde festgestellt, dass dort bereits ein Benutzer mit demselben Namen existiert. Tritt auch auf, wenn ein Login einem vorhandenen Benutzer zugeordnet wird (verwaiste Benutzer).
Ursache
Typischerweise passen nach dem Restore einer Datenbank aus einem Backup auf einem anderen Server die Login-SIDs nicht zu den Datenbankbenutzern (verwaiste Benutzer). Der Versuch, denselben Namen erneut mit CREATE USER anzulegen oder die Zuordnung Login–Benutzer manuell einzurichten, löst diesen Fehler aus.
Lösung
Ordne den verwaisten Benutzer dem vorhandenen Login neu zu: ALTER USER app_user WITH LOGIN = login_name; (empfohlen statt des veralteten sp_change_users_login). Ist der Benutzer tatsächlich überflüssig: DROP USER app_user; Verwaiste Benutzer finden: 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');
Weitere Einträge zu dieser Datenbank
- 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