Cambiar el propietario de la base de datos PostgreSQL

Shihab Sikder 20 junio 2023
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.

Shihab Sikder avatar Shihab Sikder avatar

I'm Shihab Sikder, a professional Backend Developer with experience in problem-solving and content writing. Building secure, scalable, and reliable backend architecture is my motive. I'm working with two companies as a part-time backend engineer.

LinkedIn Website

Artículo relacionado - PostgreSQL Database