Re: 回复: 回复: 回复: BUG #16101: tables in the DB is not available after pg_restore

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: 回复: 回复: 回复: BUG #16101: tables in the DB is not available after pg_restore
Дата
Msg-id 23243.1574010031@sss.pgh.pa.us
обсуждение исходный текст
Ответ на 回复: 回复: 回复: BUG #16101: tables in the DB is not available after pg_restore  ("唯一★" <270246512@qq.com>)
Ответы Re: 回复: 回复: 回复: BUG #16101: tables in the DB is not available after pg_restore  (Tomas Vondra <tomas.vondra@2ndquadrant.com>)
Список pgsql-bugs
"=?gb18030?B?zqjSu6Hv?=" <270246512@qq.com> writes:
> Do you have update for this issue?

You've done nothing to convince anyone that this isn't local
misconfiguration or process error on your part.

In particular, I still like the theory I offered in

https://www.postgresql.org/message-id/5802.1573657223%40sss.pgh.pa.us

that the permissions on the public schema don't allow your
non-superuser role to access anything in that schema.

Looking closer at the "pg_restore -v" trace you posted in

https://www.postgresql.org/message-id/tencent_5865E10D689BCC05DFD0BC291ED869BEAA05%40qq.com

bolsters this theory, because I see

pg_restore: dropping COMMENT SCHEMA public
pg_restore: dropping SCHEMA public
pg_restore: creating SCHEMA "public"
pg_restore: creating COMMENT "SCHEMA public"

but there's never any later

pg_restore: creating ACL "SCHEMA public"

which there ought to be, and there is when I try to reproduce this.
That means the public schema is ending up with default permissions,
which grant no access to anyone but the owner.

Perhaps this happened because you did the dump or the restore
with -x (--no-privileges).  Or possibly that schema's privileges
were manually modified at some earlier point.

In any case, it's fairly hard to believe that you're giving us
a completely accurate statement of facts, because the restore
trace also includes errors like

pg_restore: dropping TABLE pgbench_accounts
pg_restore: [archiver (db)] Error from TOC entry 199; 1259 47945 TABLE pgbench_accounts cm
pg_restore: [archiver (db)] could not execute query: ERROR:  table "pgbench_accounts" does not exist
Command was: DROP TABLE public.pgbench_accounts;

It seems very unlikely that you could have gotten that if you
were restoring a dump you'd just created from the same database.
So there are additional moving parts here that you have not
mentioned.

            regards, tom lane



В списке pgsql-bugs по дате отправления:

Предыдущее
От: PG Bug reporting form
Дата:
Сообщение: BUG #16120: ВАЖНО: пользователь "Albert" не прошёл проверку подлинности (по паролю)
Следующее
От: Tomas Vondra
Дата:
Сообщение: Re: 回复: 回复: 回复: BUG #16101: tables in the DB is not available after pg_restore