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>,
Fujii Masao <masao.fujii@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>,
PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2020-01-27T02:19:04Z
Lists: pgsql-hackers
Attachments
- 0001-Don-t-check-child-s-TRUNCATE-privilege-when-truncate-fujii-pg10.patch (text/plain) patch 0001
- 0001-Don-t-check-child-s-TRUNCATE-privilege-when-truncate-fujii-pg11.patch (text/plain) patch 0001
- 0001-Don-t-check-child-s-TRUNCATE-privilege-when-truncate-fujii-pg12-13.patch (text/plain) patch 0001
- 0001-Don-t-check-child-s-TRUNCATE-privilege-when-truncate-fujii-pg94-95.patch (text/plain) patch 0001
- 0001-Don-t-check-child-s-TRUNCATE-privilege-when-truncate-fujii-pg96.patch (text/plain) patch 0001
On 2020/01/23 22:14, Fujii Masao wrote: > > > On 2020/01/22 16:54, Amit Langote wrote: >> Fujii-san, >> >> Thanks for taking a look. >> >> On Fri, Jan 10, 2020 at 10:29 AM Fujii Masao <masao.fujii@gmail.com> >> wrote: >>> On Tue, Jan 7, 2020 at 5:15 PM Amit Langote <amitlangote09@gmail.com> >>> wrote: >>>> I tend to agree that TRUNCATE's permission model for inheritance >>>> should be consistent with that for the other commands. How about the >>>> attached patch toward that end? >>> >>> Thanks for the patch! >>> >>> The patch basically looks good to me. >>> >>> +GRANT SELECT (f1, fz), UPDATE (fz) ON atestc TO regress_priv_user2; >>> +REVOKE TRUNCATE ON atestc FROM regress_priv_user2; >>> >>> These seem not to be necessary for the test. >> >> You're right. Removed in the attached updated patch. > > Thanks for updating the patch! Barring any objection, > I will commit this fix and backport it to all supported versions. Attached are the back-port versions of the patches. - patch for master and v12 0001-Don-t-check-child-s-TRUNCATE-privilege-when-truncate-fujii-pg12-13.patch - patch for v11 0001-Don-t-check-child-s-TRUNCATE-privilege-when-truncate-fujii-pg11.patch - patch for v10 0001-Don-t-check-child-s-TRUNCATE-privilege-when-truncate-fujii-pg10.patch - patch for v9.6 0001-Don-t-check-child-s-TRUNCATE-privilege-when-truncate-fujii-pg96.patch - patch for v9.5 and v9.4 0001-Don-t-check-child-s-TRUNCATE-privilege-when-truncate-fujii-pg94-95.patch The patch for master branch separates truncate_check_activity() into two functions, but in v11 or before, truncate_check_activity() didn't exist and its code was in truncate_check_rel(). So I had to write the back-port version of the patch for the previous versions and separate truncate_check_rel() into three functions, i.e., truncate_check_rel(), truncate_check_activity() and truncate_check_perms(). Also the names of users that the regression test for privileges use were different between PostgreSQL versions. This is another reason why I had to write several back-port versions of the patches. Regards, -- Fujii Masao NTT DATA CORPORATION Advanced Platform Technology Group Research and Development Headquarters
Commits
-
Make inherited LOCK TABLE perform access permission checks on parent table only.
- b7e51b350c4e 13.0 landed
-
Add note about access permission checks by inherited TRUNCATE and LOCK TABLE.
- bf1840255123 9.4.26 landed
- 990acfc656c0 9.5.21 landed
- ebf273000a57 9.6.17 landed
- 87f738dafbe1 10.12 landed
- 0d233f458ff6 11.7 landed
- 4988d7e96953 12.2 landed
-
Revert commit 56bc82a511.
- d034ab0bb2ae 9.4.26 landed
-
Revert commit 606f350de9.
- dc06d0839a33 9.5.21 landed
-
Revert commit 928e755d22.
- c15b17f9276e 9.6.17 landed
-
Revert commit 4b96c03a0a.
- 8b1a6499d055 10.12 landed
-
Revert commit a5b652f3a0.
- ea7857dddb54 11.7 landed
-
Revert commit de0177788b.
- 0d9f307cf82a 12.2 landed
-
Make inherited TRUNCATE perform access permission checks on parent table only.
- 56bc82a51117 9.4.26 landed
- 606f350de92a 9.5.21 landed
- 928e755d22de 9.6.17 landed
- 4b96c03a0a2a 10.12 landed
- a5b652f3a011 11.7 landed
- de0177788bf3 12.2 landed
- e6f1e560e4c6 13.0 landed
-
Regression tests for LOCK TABLE.
- ac33c7e2c130 9.4.0 cited