DBAtlas · Atlas für Datenbankbetrieb

15023: User already exists in the current database

SQL Server

Was 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');

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank