May 2018
Intermediate to advanced
576 pages
30h 25m
English
As noted previously, a user is implemented as a role with the login attribute set. This recipe works by removing that attribute from the user, which is then kept just as a role.
If you really need to get rid of a user, you have to assign all ownership to another user. To do so, run the following query, which is a PostgreSQL extension to standard SQL:
REASSIGN OWNED BY bob TO bobs_replacement;
It does exactly what it says: it assigns ownership of all database objects currently owned by the bob role to the bobs_replacement role.
However, you need to have privileges on both the old and the new roles to do that, and you need to do it in all databases where bob owns any objects, as the REASSIGN OWNED command works only on the current ...