¿Qué tal
DROP USER <username>
Este es en realidad un alias para DROP ROLE
.
Debe eliminar explícitamente cualquier privilegio asociado con ese usuario, también para mover su propiedad a otras funciones (o eliminar el objeto).
Esto se logra mejor por
REASSIGN OWNED BY <olduser> TO <newuser>
y
DROP OWNED BY <olduser>
Este último eliminará cualquier privilegio otorgado al usuario.
Consulte los documentos de postgres para DROP ROLE y la descripción más detallada de esto.
Adición:
Aparentemente, tratar de eliminar a un usuario usando los comandos mencionados aquí solo funcionará si los está ejecutando mientras está conectado a la misma base de datos desde la que se crearon los GRANTS originales, como se explica aquí:
https://www.postgresql.org/message-id/83894A1821034948BA27FE4DAA47427928F7C29922%40apde03.APD.Satcom.Local