postgresql el propietario de la base de datos no puede acceder a la base de datos: "No se encontraron relaciones".
Tengo un usuario: user_x que posee una base de datos en postgresql y no tiene ningún atributo ROLE como (CREATE_DB, SUPERUSER, ...)
Este usuario_x puede acceder a toda la base de datos, crear tablas (en su base de datos), seleccionar, insertar y actualizar datos.
Tengo esta lista de bases de datos:
mydatabase=> \l
List of databases
Name | Owner | Encoding | Collation | Ctype | Access privileges
-------------------------+----------+-----------+-----------+-------+-----------------------
postgres | postgres | SQL_ASCII | C | C |
mydatabase | user_x | UTF8 | C | C |
template0 | postgres | SQL_ASCII | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | SQL_ASCII | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
whoami | postgres | SQL_ASCII | C | C |
(6 rows)
y los siguientes roles:
mydatabase=> \du
List of roles
Role name | Attributes | Member of
-----------+-----------------------------------+-----------
postgres | Superuser, Create role, Create DB | {}
user_x | | {}
mydatabase=> \d
List of relations
Schema | Name | Type | Owner
--------+-----------------------------------+----------+----------
public | addresses | table | user_x
public | addresses_id_seq | sequence | user_x
public | assignments | table | user_x
public | assignments_id_seq | sequence | user_x
...
Muy bien, hasta que descargue los datos y los restaure en otro servidor postgresql.
espués de importar los datos en otro servidor (con el mismo nombre de base de datos y usuario) e iniciar sesión en psql el\r comando responde con: "No se encontraron relaciones".
Así que agregué SUPERUSUARIO role to user_x en el servidor de base de datos importado y tadã user_x puede ver las relaciones y los datos nuevamente.
Pero user_x no necesita tener el privilegio SUPERUSER para acceder a esta base de datos.
¿Qué tiene de malo este vertedero importado? ¿Alguien ahora cómo resolver esto?