Re: Inconsistent behavior of pg_dump/pg_restore on DEFAULT PRIVILEGES
Nathan Bossart <bossartn@amazon.com>
From: "Bossart, Nathan" <bossartn@amazon.com>
To: Michael Paquier <michael@paquier.xyz>, Masahiko Sawada <sawada.mshk@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Neil Chen <carpenter.nail.cz@gmail.com>, "Boris P. Korzun" <drtr0jan@yandex.ru>, "pgsql-bugs@lists.postgresql.org" <pgsql-bugs@lists.postgresql.org>
Date: 2021-10-14T16:13:52Z
Lists: pgsql-bugs, pgsql-hackers
On 10/14/21, 12:55 AM, "Michael Paquier" <michael@paquier.xyz> wrote: > 1) For DEFAULT PRIVILEGES FOR FUNCTIONS: > -ALTER DEFAULT PRIVILEGES FOR ROLE regress_dump_test_role IN SCHEMA > dump_test REVOKE ALL ON FUNCTIONS FROM PUBLIC; > +ALTER DEFAULT PRIVILEGES FOR ROLE regress_dump_test_role IN SCHEMA > dump_test GRANT ALL ON FUNCTIONS TO regress_dump_test_role; This one looks correct to me. > 2) For DEFAULT PRIVILEGES FOR TABLES: > -ALTER DEFAULT PRIVILEGES FOR ROLE regress_dump_test_role IN SCHEMA > dump_test REVOKE ALL ON TABLES FROM regress_dump_test_role; > ALTER DEFAULT PRIVILEGES FOR ROLE regress_dump_test_role IN SCHEMA > dump_test GRANT SELECT ON TABLES TO regress_dump_test_role; > > So the patch removes a REVOKE ALL ON TABLES on > regress_dump_test_role after the addition of only the GRANT EXECUTE ON > FUNCTIONS. That seems off. Am I missing something? I might be missing something as well, but this one looks correct to me, too. I suspect that REVOKE statement was generated by comparing against the wrong default ACL and that it actually has no effect. Nathan
Commits
-
pg_dump: fix mis-dumping of non-global default privileges.
- b1df061f704b 9.6.24 landed
- 871dfe4b7270 11.14 landed
- 52b927a731e5 12.9 landed
- 476006023538 13.5 landed
- 10f9faf6d873 10.19 landed
- 3ad2c2455be0 14.1 landed
- 2acc84c6fd29 15.0 landed