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 :
- Supprimer un rôle avec privilèges (avec une fonction pour générer des commandes pour tous les DB pertinents)
- Rechercher des objets liés à un rôle PostgreSQL