Re: psql : \dn+ to show default schema privileges - Mailing list pgsql-hackers

From Laurenz Albe
Subject Re: psql : \dn+ to show default schema privileges
Date
Msg-id 3d02c7fa4f6f587e47d7e7ac7359b59c6c620901.camel@cybertec.at
Whole thread Raw
In response to psql : \dn+ to show default schema privileges  (노명석 <stan.num@kakaocorp.com>)
List pgsql-hackers
On Wed, 2025-05-21 at 15:33 +0900, 노명석 wrote:
> I propose an enhancement to psql \dn+ to display default schema
> privileges when nspacl is NULL, by using COALESCE with
> pg_catalog.acldefault('n', n.nspowner).
>
> Currently, \dn+ shows NULL for "Access privileges" if a schema's
> ACLs haven't been explicitly altered. This can be misleading
> after a pg_dump/pg_restore operation, as pg_dump correctly omits
> GRANT statements for inherent owner privileges. On the new
> cluster, \dn+ then displays NULL, suggesting to operators that
> owner privileges might have been lost.

I agree that showing the default privileges would reduce the
confusion for novice users, which is a good thing.

On the other hand, it would hide some information (namely, if there
is a NULL value in the ACL column or not), and it would constitute
a (small) compatibility break.  So I am not sure what is better.

The current behavior is well documented:

   If the “Access privileges” column is empty for a given object,
   it means the object has default privileges (that is, its
   privileges entry in the relevant system catalog is null).
   Default privileges always include all privileges for the owner,
   and can include some privileges for PUBLIC depending on the
   object type, as explained above.

Yours,
Laurenz Albe



pgsql-hackers by date:

Previous
From: Laurenz Albe
Date:
Subject: Re: Disable parallel query by default
Next
From: Fujii Masao
Date:
Subject: Re: Allow reading LSN written by walreciever, but not flushed yet