On Mon, Jun 27, 2022 at 11:37:19PM -0700, Noah Misch wrote:
> On Tue, May 10, 2022 at 11:44:15AM -0400, Bruce Momjian wrote:
> > I have completed the first draft of the PG 15 release notes
> 
> > <!--
> > Author: Noah Misch <n...@leadboat.com>
> > 2021-09-09 [b073c3ccd] Revoke PUBLIC CREATE from public schema, now owned 
> > by pg
> > -->
> > 
> >     <listitem>
> >      <para>
> >       Remove <literal>PUBLIC</literal> creation permission on the <link
> >       linkend="ddl-schemas-public"><literal>public</literal> schema</link>
> >       (Noah Misch)
> >      </para>
> > 
> >      <para>
> >       This is a change in the default for newly-created databases in
> >       existing clusters and for new clusters;  <literal>USAGE</literal>
> 
> If you dump/reload an unmodified v14 template1 (as pg_dumpall and pg_upgrade
> do), your v15 template1 will have a v14 ACL on its public schema.  At that
> point, the fate of "newly-created databases in existing clusters" depends on
> whether you clone template1 or template0.  Does any of that detail belong
> here, or does the existing text suffice?

I think it is very confusing to have template0 have one value and
template1 have a different one, but as I understand it template0 will
only be used for pg_dump comparison, and that will keep template1 with
the same permissions, so I guess it is okay.

> >       permissions on the <literal>public</literal> schema has not
> >       been changed.  Databases restored from previous Postgres releases
> >       will be restored with their current permissions.  Users wishing
> >       to have the old permissions on new objects will need to grant
> 
> The phrase "old permissions on new objects" doesn't sound right to me, but I'm
> not sure why.  I think you're aiming for the fact that this is just a default;
> one can still change the ACL to anything, including to the old default.  If
> these notes are going to mention the old default like they do so far, I think
> they should also urge readers to understand
> https://www.postgresql.org/docs/devel/ddl-schemas.html#DDL-SCHEMAS-PATTERNS
> before returning to the old default.  What do you think?

Agreed, the new text is:

        Users wishing to have the former permissions will need to grant
        <literal>CREATE</literal> permission for <literal>PUBLIC</literal> on
        the <literal>public</literal> schema; this change can be made on
        <literal>template1</literal> to cause all new databases to have these
        permissions.

> 
> >       <literal>CREATE</literal> permission for <literal>PUBLIC</literal>
> >       on the <literal>public</literal> schema; this change can be made
> >       on <literal>template1</literal> to cause all new databases
> >       to have these permissions.  <literal>template1</literal>
> >       permissions for <application>pg_dumpall</application> and
> >       <application>pg_upgrade</application>?
> 
> pg_dumpall will change template1.  I think pg_upgrade will too, and neither
> program will change template0.

Okay, I will remove that question mark sentence.

> >      </para>
> >     </listitem>
> > 
> > <!--
> > Author: Noah Misch <n...@leadboat.com>
> > 2021-09-09 [b073c3ccd] Revoke PUBLIC CREATE from public schema, now owned 
> > by pg
> > -->
> > 
> >     <listitem>
> >      <para>
> >       Change the owner of the <literal>public</literal> schema to
> >       <literal>pg_database_owner</literal> (Noah Misch)
> >      </para>
> > 
> >      <para>
> >       Previously it was the literal user name of the database owner.
> 
> It was the bootstrap superuser.

Okay, text updated, thanks.  Applied patch attached.

-- 
  Bruce Momjian  <br...@momjian.us>        https://momjian.us
  EDB                                      https://enterprisedb.com

  Indecision is a decision.  Inaction is an action.  Mark Batterson

diff --git a/doc/src/sgml/release-15.sgml b/doc/src/sgml/release-15.sgml
index 6da3f89d08..47ac329e79 100644
--- a/doc/src/sgml/release-15.sgml
+++ b/doc/src/sgml/release-15.sgml
@@ -63,13 +63,11 @@ Author: Noah Misch <n...@leadboat.com>
       permissions on the <literal>public</literal> schema has not
       been changed.  Databases restored from previous Postgres releases
       will be restored with their current permissions.  Users wishing
-      to have the old permissions on new objects will need to grant
+      to have the former permissions will need to grant
       <literal>CREATE</literal> permission for <literal>PUBLIC</literal>
       on the <literal>public</literal> schema; this change can be made
       on <literal>template1</literal> to cause all new databases
-      to have these permissions.  <literal>template1</literal>
-      permissions for <application>pg_dumpall</application> and
-      <application>pg_upgrade</application>?
+      to have these permissions.
      </para>
     </listitem>
 
@@ -85,7 +83,7 @@ Author: Noah Misch <n...@leadboat.com>
      </para>
 
      <para>
-      Previously it was the literal user name of the database owner.
+      Previously it was the literal user name of the bootstrap superuser.
       Databases restored from previous Postgres releases will be restored
       with their current owner specification.
      </para>

Reply via email to