PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Impossibile eliminare il ruolo PostgreSQL. Errore:`non può essere eliminato perché alcuni oggetti dipendono da esso`

DROP USER (o DROP ROLE , stessa cosa) non può procedere mentre il ruolo possiede ancora qualcosa o dispone di privilegi concessi su altri oggetti.

Sbarazzati di tutti i privilegi con DROP OWNED (che non è troppo evidente dalla dicitura) . Il manuale:

Quindi la sequenza affidabile di comandi per eliminare un ruolo è:

REASSIGN OWNED BY ryan TO postgres;  -- or some other trusted role
DROP OWNED BY ryan;

Esegui entrambi i comandi in ogni database dello stesso cluster dove il ruolo possiede qualcosa o ha dei privilegi!
E infine:

DROP USER ryan;
  • REASSIGN OWNED cambia la proprietà per tutti gli oggetti attualmente di proprietà del ruolo.
  • DROP OWNED quindi revoca solo i privilegi (proprietà fuori mano).

In alternativa, puoi saltare REASSIGN OWNED . Quindi DROP OWNED (anche) rilascerà tutti gli oggetti di proprietà dell'utente. (Sei sicuro?!)

Correlati: