Перейти к основному содержимому

DROP ROLE

примечание

Эта страница переведена при помощи нейросети GigaChat.

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

Синтаксис

DROP ROLE [ IF EXISTS ] name [, ...]

Описание

DROP ROLE удаляет указанные роли. Чтобы удалить роль с правами суперпользователя, необходимо самому быть суперпользователем. Для удаления обычных (не суперпользовательских) ролей необходимо иметь право CREATEROLE и ADMIN OPTION для роли.

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

При этом вручную удалять членства роли в других ролях не требуется: DROP ROLE автоматически удаляет все связи, в которых удаляемая роль состоит как участник или как группа. Сами другие роли при этом не удаляются и не изменяются.

Параметры

IF EXISTS
Подавляет ошибку, если указанная роль не существует, вместо этого выводится уведомление.
name
Указывает имя существующей роли, которая должна быть удалена.

Заметки

PostgreSQL также предоставляет утилиту командной строки dropuser, которая выполняет ту же задачу (она просто вызывает DROP ROLE), но запускается напрямую из командной оболочки.

Примеры

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

DROP ROLE jonathan;

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

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

Смотрите также

CREATE ROLE, ALTER ROLE, SET ROLE