PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Impossible de supprimer le rôle PostgreSQL. Erreur :`ne peut pas être supprimé car certains objets en dépendent`

DROP USER (ou DROP ROLE , même chose) ne peut pas continuer tant que le rôle possède encore quoi que ce soit ou a des privilèges accordés sur d'autres objets.

Débarrassez-vous de tous les privilèges avec DROP OWNED (ce qui n'est pas trop évident d'après le libellé) . Le manuel :

Ainsi, la séquence de commandes fiable pour supprimer un rôle est :

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

Exécutez les deux commandes dans chaque base de données du même cluster où le rôle possède quoi que ce soit ou a des privilèges !
Et enfin :

DROP USER ryan;
  • REASSIGN OWNED modifie la propriété de tous les objets actuellement détenus par le rôle.
  • DROP OWNED puis révoque uniquement les privilèges (propriétés à l'écart).

Alternativement, vous pouvez ignorer REASSIGN OWNED . Alors DROP OWNED supprimera (également) tous les objets appartenant à l'utilisateur. (Êtes-vous sûr ? !)

Connexe :