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

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