Владелец базы данных postgresql не может получить доступ к базе данных - «Отношения не найдены».
У меня есть пользователь: user_x, который владеет базой данных на postgresql и не имеет атрибутов ROLE, таких как (CREATE_DB, SUPERUSER, ...)
Этот user_x может получить доступ ко всей БД, создавать таблицы (в своей базе данных), выбирать, вставлять и обновлять данные.
У меня есть этот список баз данных:
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)
и следующие роли:
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
...
Хорошо, пока я не дам данные и не восстановлю их на другом сервере postgresql.
После импорта данных на другом сервере (с тем же именем базы данных и пользователем) и вошли в систему psql\ d ответ команды:"Никаких отношений не найдено".
Итак, я добавилSUPERUSER Роль user_x на импортированном сервере базы данных и tadã user_x снова могут видеть отношения и данные.
Но user_x не должен иметь привилегию SUPERUSER для доступа к этой базе данных.
Что не так с этим импортированным дампом? Кто-нибудь сейчас как это решить?