DROP ROLE
DROP ROLE — удалить роль в базе данных
Синтаксис
DROP ROLE [ IF EXISTS ] имя
[, ...]
Описание
DROP ROLE
удаляет указанные роли. Удалить роль суперпользователя может только суперпользователь, а чтобы удалить роль обычного пользователя, достаточно иметь право CREATEROLE
.
Если на эту роль есть ссылки в какой-либо базе данных в кластере, возникнет ошибка и роль не будет удалена. Прежде чем удалять роль, необходимо удалить все принадлежащие ей объекты (или сменить их владельца), а также лишить её данных ей прав для других объектов. Для этой цели можно применить команды REASSIGN OWNED и DROP OWNED; за подробностями обратитесь к Разделу 21.4.
Однако ликвидировать членство в ролях, связанное с этой ролью, не требуется; DROP ROLE
автоматически исключит данную роль из других ролей, и третьи роли из данной. Сами роли при этом не удаляются и другим образом никак не затрагиваются.
Параметры
IF EXISTS
Не считать ошибкой, если роль не существует. В этом случае будет выдано замечание.
имя
Имя роли, подлежащей удалению.
Примечания
PostgreSQL включает программу dropuser, которая предоставляет ту же функциональность (на самом деле она вызывает эту команду), но может запускаться в командной оболочке.
Примеры
Удаление роли:
DROP ROLE jonathan;
Совместимость
В стандарте SQL определена команда DROP ROLE
, но она может удалять только по одной роли, а для её выполнения требуются другие права, не такие как в PostgreSQL.