Re: table partitioning and access privileges

Fujii Masao <masao.fujii@oss.nttdata.com>

From: Fujii Masao <masao.fujii@oss.nttdata.com>
To: Amit Langote <amitlangote09@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Fujii Masao <masao.fujii@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2020-02-13T11:39:54Z
Lists: pgsql-hackers

On 2020/02/07 10:39, Amit Langote wrote:
> On Fri, Feb 7, 2020 at 1:16 AM Fujii Masao <masao.fujii@oss.nttdata.com> wrote:
>> On 2020/02/03 14:26, Amit Langote wrote:
>>> On Mon, Feb 3, 2020 at 2:07 PM Fujii Masao <masao.fujii@oss.nttdata.com> wrote:
>>>> On 2020/02/03 11:05, Amit Langote wrote:
>>>>> Okay.  How about the attached?
>>>>
>>>> Thanks for the patches! You added the note just after the description
>>>> about row level security on inherited table, but isn't it better to
>>>> add it before that? Attached patch does that. Thought?
>>>
>>> Yeah, that might be a better flow for that paragraph.
>>
>> Pushed! Thanks!
> 
> Thank you.
> 
>>>>> Maybe, we should also note the LOCK TABLE exception?
>>>>
>>>> Yes.
>>>
>>> Note that, unlike TRUNCATE, LOCK TABLE exception exists in HEAD too,
>>> but maybe you're aware of that.
>>
>> Yes, so I will review your patch getting rid of
>> LOCK TABLE exception.
> 
> Attached updated patch.

Thanks! This patch basically looks good to me except
the following minor comment.

  ROLLBACK;
-BEGIN;
-LOCK TABLE ONLY lock_tbl1;
-ROLLBACK;
  RESET ROLE;

I think that there is no strong reason why these SQLs need to be
removed. We can verify that even "LOCK TABLE ONLY" command works
expectedly on the inherited tables by keeping those SQLs in the
regression test. So what about not removing these SQLs?

Regards,

-- 
Fujii Masao
NTT DATA CORPORATION
Advanced Platform Technology Group
Research and Development Headquarters



Commits

  1. Make inherited LOCK TABLE perform access permission checks on parent table only.

  2. Add note about access permission checks by inherited TRUNCATE and LOCK TABLE.

  3. Revert commit 56bc82a511.

  4. Revert commit 606f350de9.

  5. Revert commit 928e755d22.

  6. Revert commit 4b96c03a0a.

  7. Revert commit a5b652f3a0.

  8. Revert commit de0177788b.

  9. Make inherited TRUNCATE perform access permission checks on parent table only.

  10. Regression tests for LOCK TABLE.