Goccia ruolo nel database di SQL Server?
-
19-09-2019 - |
Domanda
Sto cercando di eliminare uno dei ruolo nel mio database SQL Server. Ho lasciato cadere tutti i membri del ruolo e quando ho provato a cadere ruolo ho ottenuto questo messaggio di errore:
Msg 15138, Level 16, State 1, Line 13
The database principal owns a schema in the database, and cannot be dropped.
Qualcuno sa perché? Ho controllato la schema di proprietà e aveva solo il check segno a proprio nome.
Soluzione
Non si può cadere un'entità di database che possiede uno schema. Devi trasferire la proprietà dello schema a qualche altra entità di database o eliminare lo schema prima di poter eliminare l'entità di database.
Altri suggerimenti
errore 15138 è dovuto l'utente che si sta tentando di eliminare possiede uno schema.
Se si esegue la query di seguito si otterrà lo schema di proprietà dell'utente.
USE DatabaseName;
SELECT s.name
FROM sys.schemas s
WHERE s.principal_id = USER_ID('UserName');
Diciamo restituisce 'db_denydatareader' schema. Quindi è possibile assegnare tale schema per l'utente 'dbo' predefinito utilizzando la query di seguito.
ALTER AUTHORIZATION ON SCHEMA::db_denydatareader TO dbo;