Cambiar el propietario de la base de datos PostgreSQL
Podemos usar la consulta REASIGNAR PROPIEDAD
para cambiar la propiedad de la base de datos existente. El nuevo usuario podrá realizar todas las consultas que podía realizar el anterior propietario.
Cambiar la propiedad de una base de datos en Psql
Para fines de demostración, vamos a crear una nueva base de datos con un antiguo propietario y un nuevo usuario. Luego, asigne al nuevo usuario como propietario de la nueva base de datos.
Crear una base de datos:
postgres=# create DATABASE SELL;
CREATE DATABASE
postgres=#
Creando un nuevo usuario:
postgres=# CREATE USER TEST_USER WITH PASSWORD '~test~';
CREATE ROLE
postgres=#
El propietario actual de la tabla Vender
:
SELECT dbs.datname, roles.rolname
FROM pg_catalog.pg_database dbs, pg_catalog.pg_roles roles
WHERE dbs.datdba = roles.oid;
Inicialmente, iniciamos sesión como postgres
; este era nuestro nombre de usuario. Ahora, si ejecutamos la consulta anterior, me mostrará el propietario de la base de datos existente dentro de Postgres:
datname | rolname
-----------+----------
template0 | postgres
template1 | postgres
sell | postgres
postgres | postgres
(4 rows)
Podemos ver que la tabla Vender
tiene el propietario postgres
. Cambiemos el propietario con el ’test_user'.
Así es como lo haremos:
ALTER DATABASE SELL OWNER TO TEST_USER;
Y aquí está la salida:
postgres=# ALTER DATABASE SELL OWNER TO TEST_USER;
ALTER DATABASE
postgres=# SELECT dbs.datname, roles.rolname
postgres-# FROM pg_catalog.pg_database dbs, pg_catalog.pg_roles roles
postgres-# WHERE dbs.datdba = roles.oid;
datname | rolname
-----------+-----------
template0 | postgres
template1 | postgres
postgres | postgres
sell | test_user
(4 rows)
postgres=#
Puede ver que el propietario de la base de datos llamado vender
se ha cambiado a test_user
.
Para saber más sobre el comando de modificación de la base de datos, siga la documentación oficial.