Cómo cambiar el dueño a todas las tablas de una base de datos PostgreSQL

En muchas ocasiones se requiere que la base de datos tenga un dueño diferente al que originalmente tiene, esto incluye a todos los objetos que la conforman como triggers, tablas, funciones, etc.


En este sentido, se puede ejecutar los siguientes comandos SQL a través del cliente psql o pgadmin.

1.-Cambiar el OWNER de la base de datos:

ALTER DATABASE $BASEDEDATOS OWNER TO $USER;

2.- Cambiar el owner a los objetos de la base de datos:
 
UPDATE pg_class SET relowner = (SELECT oid FROM pg_roles WHERE rolname = '$USER') 
WHERE relname IN (SELECT relname FROM pg_class, pg_namespace WHERE pg_namespace.oid = pg_class.relnamespace
AND pg_namespace.nspname = 'public');

 

Donde se cambia $USER por el nombre del usuario a quien se le asignará como dueño de esta base de datos.