REASSIGN OWNED

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

Синтаксис

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

Описание

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

Параметры

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

      Замечания

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

Для выполнения команды REASSIGN OWNED требуются привилегии как для исходной(-ых) роли(-ей), так и для целевой роли.

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

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

Примеры

Передать все объекты базы данных, принадлежащие ролям sally и bob, роли admin:

REASSIGN OWNED BY sally, bob TO admin;

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

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

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

DROP OWNED, DROP ROLE, ALTER DATABASE