REASSIGN OWNED — сменить владельца объектов базы данных, принадлежащих заданной роли
REASSIGN OWNED BY {старая_роль
| CURRENT_USER | SESSION_USER } [, ...] TO {новая_роль
| CURRENT_USER | SESSION_USER }
REASSIGN OWNED
указывает системе сменить владельца объектов баз данных, принадлежащих одной из старых_ролей
, на новую_роль
.
старая_роль
Имя роли. Все объекты в текущей базе данных и все общие объекты (базы данных, табличные пространства), принадлежащие этой роли, станут принадлежать новой_роли
.
новая_роль
Имя роли, которая станет новым владельцем затронутых объектов.
REASSIGN OWNED
часто применяется при подготовке к удалению одной или нескольких ролей. Так как команда REASSIGN OWNED
затрагивает объекты только в текущей базе данных, обычно её нужно выполнять в каждой базе данных, которая содержит объекты, принадлежащие удаляемой роли.
Для выполнения REASSIGN OWNED
необходимо быть членом и исходной, и целевой роли.
Команда DROP OWNED предлагает альтернативное решение, просто удаляя все объекты в базе данных, принадлежащие одной или нескольким заданным ролям.
Команда REASSIGN OWNED
не затрагивает никакие права, которые даны старым_ролям
для объектов, им не принадлежащим. Отозвать эти права можно, воспользовавшись командой DROP OWNED
.
За подробностями обратитесь к Разделу 21.4.
Оператор REASSIGN OWNED
является расширением PostgreSQL.