post icon

The database principal owns a schema in the database, and cannot be dropped. (Microsoft SQL Server, Error: 15138)

Se provi ad eliminare un utente che appartiene a uno schema, riceverai l’errore seguente:

Drop failed for User ‘my_user’.  (Microsoft.SqlServer.Smo)
The database principal owns a schema in the database, and cannot be dropped. (Microsoft SQL Server, Error: 15138)

dunque, per eliminare l’utente, bisogna trovare lo schema a cui appartiene, e trasferire l’ownership ad un altro utente (o ruolo).

Per trovare lo schema a cui appartiene l’utente utilizza il seguente snippet:

SELECT sc.name
FROM sys.schemas sc
WHERE sc.principal_id = USER_ID('my_user')

Una volta trovato lo schema con la query precedente (per esempio db_datareader), utilizzarlo per trasferire l’ownership con questo snippet:

ALTER AUTHORIZATION
ON SCHEMA::db_datareader
TO dbo
1 settembre 2011 @ 14:52

4 Comments

Leave a comment
  1. Francesco
    6 aprile 2012 at 16:57 #

    Mi hai salvato un venerdi sera!!

  2. Nicola Celiento
    6 aprile 2012 at 17:14 #

    Un santo venerdì! 🙂

  3. TomClancy
    12 marzo 2013 at 19:36 #

    Grazie 🙂 davvero utile

  4. goblin
    15 novembre 2014 at 21:32 #

    Grazie mille funziona 😉

Leave a Reply

Are you human? Time limit is exhausted. Please reload CAPTCHA.