Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1ixVZm-0001Ht-VL for pgsql-hackers@arkaria.postgresql.org; Fri, 31 Jan 2020 12:39:11 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1ixVZl-0006qK-DH for pgsql-hackers@arkaria.postgresql.org; Fri, 31 Jan 2020 12:39:09 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1ixVZl-0006q0-0f for pgsql-hackers@lists.postgresql.org; Fri, 31 Jan 2020 12:39:09 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ixVZh-00042O-Qh for pgsql-hackers@postgresql.org; Fri, 31 Jan 2020 12:39:07 +0000 Received: from hnk.local (sp49-98-212-51.msd.spmode.ne.jp [49.98.212.51]) by oss.nttdata.com (Postfix) with ESMTPSA id 849C4602A6; Fri, 31 Jan 2020 21:39:02 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.101.5 at oss.nttdata.com Subject: Re: table partitioning and access privileges To: Amit Langote Cc: Tom Lane , Fujii Masao , PostgreSQL-development References: <6218.1577388354@sss.pgh.pa.us> <3546b691-b744-12c9-fd2f-7dc31c3c030e@oss.nttdata.com> <21015.1580400165@sss.pgh.pa.us> From: Fujii Masao Message-ID: Date: Fri, 31 Jan 2020 21:39:01 +0900 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Thunderbird/68.4.2 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk On 2020/01/31 13:38, Amit Langote wrote: > On Fri, Jan 31, 2020 at 1:28 AM Fujii Masao wrote: >> On 2020/01/31 1:02, Tom Lane wrote: >>> Fujii Masao writes: >>>> Thanks for updating the patch! Barring any objection, >>>> I will commit this fix and backport it to all supported versions. >>> >>> Sorry for not having paid closer attention to this thread, but ... >>> is back-patching this behavioral change really a good idea? >>> >>> It's not that hard to imagine that somebody is expecting the old >>> behavior and will complain that we broke their application's security. >>> So I'd have thought it better to fix only in HEAD, with a >>> compatibility warning in the v13 release notes. >>> >>> I'm afraid it's much more likely that people will complain about >>> making such a change in a minor release than that they will be >>> happy about it. It's particularly risky to be making it in what >>> will be the last 9.4.x release, because we will not have any >>> opportunity to undo it in that branch if there is pushback. >> >> Fair enough. I finally did back-patch because the behavior is clearly >> documented and I failed to hear the opinions to object the back-patch. >> But I should have heard and discussed such risks more. >> >> I'm OK to revert all those back-patch. Instead, probably the document >> should be updated in old branches. > > I could find only this paragraph in the section on inheritance that > talks about how access permissions work: > > 9.4: > > "Note how table access permissions are handled. Querying a parent > table can automatically access data in child tables without further > access privilege checking. This preserves the appearance that the data > is (also) in the parent table. Accessing the child tables directly is, > however, not automatically allowed and would require further > privileges to be granted." > > 9.5-12: > > "Inherited queries perform access permission checks on the parent > table only. Thus, for example, granting UPDATE permission on the > cities table implies permission to update rows in the capitals table > as well, when they are accessed through cities. This preserves the > appearance that the data is (also) in the parent table. But the > capitals table could not be updated directly without an additional > grant. In a similar way, the parent table's row security policies (see > Section 5.7) are applied to rows coming from child tables during an > inherited query. A child table's policies, if any, are applied only > when it is the table explicitly named in the query; and in that case, > any policies attached to its parent(s) are ignored." > > Do you mean that the TRUNCATE exception should be noted here? Yes, that's what I was thinking. Regards, -- Fujii Masao NTT DATA CORPORATION Advanced Platform Technology Group Research and Development Headquarters