---
title: "REASSIGN OWNED"
id: sql-reassign-owned
pg_version: "20devel"
---
# 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`](sql-drop-owned.md) 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](role-removal.md) for more discussion.
## Compatibility
The `REASSIGN OWNED` command is a PostgreSQL extension.
## See Also
[DROP OWNED](sql-drop-owned.md), [DROP ROLE](sql-droprole.md), [ALTER DATABASE](sql-alterdatabase.md)