DROP ROLE

DROP ROLE — удалить роль в базе данных

Синтаксис

DROP ROLE [ IF EXISTS ] имя [, ...]

Описание

Команда DROP ROLE удаляет указанную(ые) роль(и). Чтобы удалить роль суперпользователя, нужно самому быть суперпользователем; чтобы удалять обычные роли, необходимо иметь право CREATEROLE.

Роль нельзя удалить, если на нее всё еще есть ссылки в любой базе данных кластера; в этом случае возникнет ошибка и роль не будет удалена. Перед удалением роли необходимо удалить все принадлежащие ей объекты (или сменить их владельца) и отозвать все права, предоставленные этой роли для других объектов. Для этой цели могут быть применены команды REASSIGN OWNED и DROP OWNED; дополнительную информацию см. в разделе Удаление ролей.

Тем не менее, нет необходимости удалять членство в ролях, включающее роль; DROP ROLE автоматически отменяет любое членство целевой роли в других ролях и каких-либо других ролей в целевой роли. Нецелевые роли при этом не удаляются и не затрагиваются иным образом.

Параметры

IF EXISTS

Не считать ошибкой, если роль не существует. В этом случае будет выдано соответствующее уведомление.

имя

Имя роли, подлежащей удалению.

Примечания

QHB включает в себя программу dropuser, которая имеет ту же функциональность, что и эта команда (фактически она вызывает эту команду), но может быть запущена из командной оболочки.

Примеры

Удаление роли:

DROP ROLE jonathan;

Совместимость

В стандарте SQL описана команда DROP ROLE, но он позволяет удалять командой только одну роль и определяет требования к правам, отличные от требований QHB.

См. также

CREATE ROLE, ALTER ROLE, SET ROLE