From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Noah Misch <noah(at)leadboat(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Robert Haas <robertmhaas(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: pgsql: Revoke PUBLIC CREATE from public schema, now owned by pg_databas |
Date: | 2022-12-01 11:16:39 |
Message-ID: | 20221201111639.t6cabzqlmcl4yjtl@alvherre.pgsql |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers pgsql-hackers |
On 2022-Dec-01, Noah Misch wrote:
> This is free from the problem found in ddl-create-public-reorg-really.patch.
> However, the word "other" doesn't belong there. (The per-user schemas should
> not have public CREATE privilege.) I would also move that same sentence up
> front, like this:
>
> Constrain ordinary users to user-private schemas. To implement this
> pattern, first ensure that no schemas have public CREATE privileges.
> Then, for every user needing to create non-temporary objects, create a
> schema with the same name as that user. (Recall that the default search
> path starts with $user, which resolves to the user name. Therefore, if
> each user has a separate schema, they access their own schemas by
> default.) This pattern is a secure schema usage pattern unless an
> untrusted user is the database owner or holds the CREATEROLE privilege, in
> which case no secure schema usage pattern exists.
+1 LGTM
--
Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2022-12-01 11:56:51 | pgsql: Move PartitioPruneInfo out of plan nodes into PlannedStmt |
Previous Message | Peter Eisentraut | 2022-12-01 10:53:25 | pgsql: doc: Add missing comma |
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2022-12-01 11:21:06 | Re: generic plans and "initial" pruning |
Previous Message | Alvaro Herrera | 2022-12-01 10:49:54 | Re: ExecRTCheckPerms() and many prunable partitions |