with postgres permission password give create change all postgresql user-permissions

permission - El propietario de la base de datos postgresql no puede acceder a la base de datos: "No se encontraron relaciones".



postgres grant all privileges on database to user (1)

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 ...

De acuerdo, hasta que vuelco los datos y los restauro en otro servidor postgresql.

Después de importar los datos en otro servidor (con el mismo nombre de base de datos y usuario) y de iniciar sesión en psql, el comando / d responde con: "No se encontraron relaciones".

Así que agregué el rol de SUPERUSER a 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 privilegios de SUPERUSER para acceder a esta base de datos.

¿Qué pasa con este volcado importado? ¿Alguien ahora cómo resolver esto?


Tal vez los permisos de esquema para el esquema public fueron destrozados. ¿Cuál es la salida de /dn+ en ambos sitios?

La salida debería verse así:

List of schemas Name | Owner | Access privileges | Description --------+----------+----------------------+------------------------ public | postgres | postgres=UC/postgres | standard public schema : =UC/postgres (1 row)

Si falta la parte =UC/postgres , puede restaurarla con

grant all on schema public to public;