REASSIGN OWNED

REASSIGN OWNED

7

SQL - Language Statements

REASSIGN OWNED

change the ownership of database objects owned by a database role

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`](#sql-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 [???](#role-removal) for more discussion.

Compatibility
=============

The `REASSIGN OWNED` command is a PostgreSQL extension.

See Also
========
