sql >> Base de Datos >  >> RDS >> PostgreSQL

No se puede descartar el rol de PostgreSQL. Error:`no se puede descartar porque algunos objetos dependen de él`

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: