REASSIGN OWNED#

Примечание

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

REASSIGN OWNED - изменение владельца объектов базы данных, принадлежащих роли базы данных.

Синтаксис#

REASSIGN OWNED BY { old_role | CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...]
               TO { new_role | CURRENT_ROLE | CURRENT_USER | SESSION_USER }

Описание#

REASSIGN OWNED инструктирует систему изменить владельца объектов базы данных, принадлежащих одному или нескольким указанным ролям (old_roles), назначив новым владельцем роль new_role.

Параметры#

old_role

Имя роли. Все объекты в текущей базе данных, а также общие объекты (такие, как базы данных и табличные пространства), принадлежащие этой роли, будут переданы в собственность роли new_role.

new_role

Имя роли, которая станет новым владельцем затронутых объектов.

Примечания#

REASSIGN OWNED часто используется в рамках подготовки к удалению одной или нескольких ролей. Поскольку команда не затрагивает объекты в других базах данных, ее обычно нужно выполнить в каждой базе, где у удаляемой роли есть принадлежащие ей объекты.

Выполнение REASSIGN OWNED требует, чтобы вызывающий пользователь входил в состав обеих ролей — и old_role, и new_role.

Альтернативой является команда DROP OWNED, которая просто удаляет все объекты базы данных, принадлежащие одной или нескольким ролям.

Команда REASSIGN OWNED не затрагивает привилегии, предоставленные old_roles на объекты, которые им не принадлежат. Также она не затрагивает привилегии по умолчанию, созданные с помощью ALTER DEFAULT PRIVILEGES. Чтобы отозвать такие привилегии, используйте DROP OWNED.

Смотрите раздел «Отказ от ролей» для более подробной информации.

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

Команда REASSIGN OWNED является расширением PostgreSQL.

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

DROP OWNED, DROP ROLE, ALTER DATABASE