Re: pgsql: Revoke PUBLIC CREATE from public schema, now owned by pg_databas

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Noah Misch <noah(at)leadboat(dot)com>
Cc: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: Re: pgsql: Revoke PUBLIC CREATE from public schema, now owned by pg_databas
Date: 2021-12-17 17:52:39
Message-ID: 1363170.1639763559@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers pgsql-hackers

Noah Misch <noah(at)leadboat(dot)com> writes:
> Revoke PUBLIC CREATE from public schema, now owned by pg_database_owner.

I've just stumbled across a testing problem created by this commit:
if you try to skip the tablespace test, the rest of the run falls
over, because this bit doesn't get executed:

-- Rest of this suite can use the public schema freely.
GRANT ALL ON SCHEMA public TO public;

Skipping the tablespace test is something I've been accustomed to do
when testing replication with the standby on the same machine as the
primary, because otherwise you've got to fool with keeping the
standby from overwriting the primary's tablespaces. This hack made
that a lot more painful.

I'm inclined to think the cleanest fix is to move this step into a
new script, say "test_setup.sql", that is scheduled by itself just
after tablespace.sql. It's sort of annoying to fire up a psql+backend
for just one command, but perhaps there's other stuff that could be
put there too.

Another possibility is to add that GRANT to the list of stuff that
pg_regress.c does by default. If there's actually reason for
tablespace.sql to run without that, it could revoke and re-grant
the public permissions. This way would have the advantage of
being less likely to break other test suites.

regards, tom lane

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Noah Misch 2021-12-17 18:25:18 Re: pgsql: Revoke PUBLIC CREATE from public schema, now owned by pg_databas
Previous Message Adrien Nayrat 2021-12-17 15:40:33 Re: pgsql: Remove pg_dump's --no-synchronized-snapshots switch.

Browse pgsql-hackers by date

  From Date Subject
Next Message Noah Misch 2021-12-17 18:25:18 Re: pgsql: Revoke PUBLIC CREATE from public schema, now owned by pg_databas
Previous Message Christoph Heiss 2021-12-17 17:31:26 [PATCH] Add reloption for views to enable RLS