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