DBAtlas · Atlas für Datenbankbetrieb

15138: The database principal owns a schema in the database, and cannot be dropped

SQL Server

Was bedeutet das?

Es wurde versucht, einen Datenbankbenutzer bzw. eine Rolle (Datenbankprinzipal) zu löschen, aber das war nicht möglich, weil der Prinzipal ein oder mehrere Schemas in der Datenbank besitzt. Er kann erst gelöscht werden, wenn die ihm gehörenden Schemas an einen anderen Prinzipal übertragen sind.

Ursache

Der zu entfernende Benutzer ist OWNER mindestens eines Schemas (z. B. eines standardmäßig unter seinem Namen angelegten oder per AUTHORIZATION zugewiesenen Schemas). SQL Server blockiert das Löschen, um keine verwaisten Schemas zu hinterlassen.

Lösung

Finde die Schemas, die dem Benutzer gehören: SELECT name FROM sys.schemas WHERE principal_id = USER_ID('app_user'); Übertrage den Besitz dieser Schemas an einen anderen Prinzipal (z. B. dbo): ALTER AUTHORIZATION ON SCHEMA::[app_schema] TO dbo; Wird das Schema nicht mehr benötigt (und ist es leer), führe DROP SCHEMA aus. Nachdem der Besitz übertragen wurde, führe DROP USER erneut aus.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank