DROP ROLE — elimina un rol de base de datos
DROP ROLE [ IF EXISTS ] nombre [, ...]
DROP ROLE elimina el o los roles especificados.
Para eliminar un rol de superusuario, tú mismo debes ser superusuario;
para eliminar roles que no sean superusuarios, debes tener el privilegio CREATEROLE
y haber recibido la opción ADMIN OPTION sobre el rol.
Un rol no se puede eliminar si todavía está referenciado en alguna base de datos
del clúster; de lo contrario se producirá un error. Antes de eliminar el rol,
debes eliminar todos los objetos que le pertenecen (o reasignar su propiedad)
y revocar cualquier privilegio que se le haya concedido sobre otros objetos.
Los comandos REASSIGN
OWNED y DROP
OWNED
pueden ser de utilidad para este propósito; consulta la Section 21.4
para obtener más detalles.
Sin embargo, no es necesario eliminar las membresías a roles asociadas al rol;
DROP ROLE revoca automáticamente cualquier membresía del rol de
destino en otros roles, y de otros roles en el rol de destino.
Los demás roles no se eliminan ni se ven afectados de ninguna otra manera.
IF EXISTSNo arroja un error si el rol no existe. Se emite una advertencia (notice) en este caso.
nombreEl nombre del rol a eliminar.
PostgreSQL incluye el programa dropuser que tiene la misma funcionalidad que este comando (de hecho, llama a este comando) pero se puede ejecutar desde la consola de comandos.
Para eliminar un rol:
DROP ROLE jonathan;
El estándar SQL define DROP ROLE, pero solo permite
eliminar un rol a la vez, y especifica requisitos de privilegios diferentes
a los que utiliza PostgreSQL.