REASSIGN OWNED
REASSIGN OWNED — сменить владельца объектов базы данных, принадлежащих заданной роли
Синтаксис
REASSIGN OWNED BY {старая_роль
| CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...] TO {новая_роль
| CURRENT_ROLE | CURRENT_USER | SESSION_USER }
Описание
REASSIGN OWNED
указывает системе сменить владельца объектов баз данных, принадлежащих одной из старых_ролей
, на новую_роль
.
Параметры
старая_роль
Имя роли. Все объекты в текущей базе данных и все общие объекты (базы данных, табличные пространства), принадлежащие этой роли, станут принадлежать
новой_роли
.новая_роль
Имя роли, которая станет новым владельцем затронутых объектов.
Примечания
REASSIGN OWNED
часто применяется при подготовке к удалению одной или нескольких ролей. Так как команда REASSIGN OWNED
затрагивает объекты только в текущей базе данных, обычно её нужно выполнять в каждой базе данных, которая содержит объекты, принадлежащие удаляемой роли.
Для выполнения REASSIGN OWNED
необходимо быть членом и исходной, и целевой роли.
Команда DROP OWNED
предлагает альтернативное решение, просто удаляя все объекты базы данных, принадлежащие одной или нескольким заданным ролям.
Команда REASSIGN OWNED
не затрагивает никакие права, которые даны старым_ролям
для объектов, им не принадлежащим. Также она не затрагивает права по умолчанию, установленные командой ALTER DEFAULT PRIVILEGES
. Отозвать эти права можно, воспользовавшись командой DROP OWNED
.
За подробностями обратитесь к Разделу 22.4.
Совместимость
Оператор REASSIGN OWNED
является расширением PostgreSQL.
См. также
DROP OWNED, DROP ROLE, ALTER DATABASEREASSIGN OWNED
REASSIGN OWNED — change the ownership of database objects owned by a database role
Synopsis
REASSIGN OWNED BY {old_role
| CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...] TO {new_role
| CURRENT_ROLE | CURRENT_USER | SESSION_USER }
Description
REASSIGN OWNED
instructs the system to change the ownership of database objects owned by any of the old_roles
to new_role
.
Parameters
old_role
The name of a role. The ownership of all the objects within the current database, and of all shared objects (databases, tablespaces), owned by this role will be reassigned to
new_role
.new_role
The name of the role that will be made the new owner of the affected objects.
Notes
REASSIGN OWNED
is often used to prepare for the removal of one or more roles. Because REASSIGN OWNED
does not affect objects within other databases, it is usually necessary to execute this command in each database that contains objects owned by a role that is to be removed.
REASSIGN OWNED
requires membership on both the source role(s) and the target role.
The DROP OWNED
command is an alternative that simply drops all the database objects owned by one or more roles.
The REASSIGN OWNED
command does not affect any privileges granted to the old_roles
on objects that are not owned by them. Likewise, it does not affect default privileges created with ALTER DEFAULT PRIVILEGES
. Use DROP OWNED
to revoke such privileges.
See Section 21.4 for more discussion.
Compatibility
The REASSIGN OWNED
command is a PostgreSQL extension.