DROP USER
(o DROP ROLE
, lo mismo) no puede continuar mientras el rol aún posea algo o tenga privilegios otorgados sobre otros objetos.
Deshazte de todos los privilegios con DROP OWNED
(que no es demasiado obvio por la redacción) . El manual:
Entonces, la secuencia confiable de comandos para abandonar un rol es:
REASSIGN OWNED BY ryan TO postgres; -- or some other trusted role
DROP OWNED BY ryan;
Ejecute ambos comandos en todas las bases de datos del mismo clúster ¡donde el rol posee cualquier cosa o tiene privilegios!
Y finalmente:
DROP USER ryan;
REASSIGN OWNED
cambia la propiedad de todos los objetos que actualmente pertenecen al rol.DROP OWNED
luego solo revoca privilegios (propiedades fuera del camino).
Alternativamente, puede omitir REASSIGN OWNED
. Luego DROP OWNED
(también) eliminará todos los objetos propiedad del usuario. (¡¿Estás seguro?!)
Relacionado:
- Eliminar un rol con privilegios (con una función para generar comandos para todas las bases de datos relevantes)
- Encuentre objetos vinculados a un rol de PostgreSQL