Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kBgC2-0006jv-Ok for pgsql-hackers@arkaria.postgresql.org; Fri, 28 Aug 2020 15:21:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kBgC1-0002ON-NG for pgsql-hackers@arkaria.postgresql.org; Fri, 28 Aug 2020 15:21:29 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kBgC1-0002OF-GN for pgsql-hackers@lists.postgresql.org; Fri, 28 Aug 2020 15:21:29 +0000 Received: from 8.mo2.mail-out.ovh.net ([188.165.52.147]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kBgBy-0001jp-Bk for pgsql-hackers@lists.postgresql.org; Fri, 28 Aug 2020 15:21:27 +0000 Received: from player798.ha.ovh.net (unknown [10.110.115.36]) by mo2.mail-out.ovh.net (Postfix) with ESMTP id 754351E44A1 for ; Fri, 28 Aug 2020 17:21:23 +0200 (CEST) Received: from darold.net (lfbn-lyo-1-707-142.w92-137.abo.wanadoo.fr [92.137.43.142]) (Authenticated sender: gilles@darold.net) by player798.ha.ovh.net (Postfix) with ESMTPSA id CE35615B4E197 for ; Fri, 28 Aug 2020 15:21:22 +0000 (UTC) Authentication-Results: garm.ovh; auth=pass (GARM-99G003f7278ad8-b868-4ee3-9bcd-33621222868c, B87833CD53D1C48F8676B3A70E535083943DC472) smtp.auth=gilles@darold.net Subject: Re: New default role- 'pg_read_all_data' To: pgsql-hackers@lists.postgresql.org References: <20200828003023.GU29590@tamriel.snowman.net> <20200828123847.GV29590@tamriel.snowman.net> <20200828132645.GZ29590@tamriel.snowman.net> <6a78c0d5-d010-f2b5-198f-b35eb152f3c4@darold.net> <20200828145219.GA29590@tamriel.snowman.net> From: Gilles Darold Message-ID: <1091e05d-66fa-b56c-9b60-dc1bde6cf9dc@darold.net> Date: Fri, 28 Aug 2020 17:21:22 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20200828145219.GA29590@tamriel.snowman.net> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-Ovh-Tracer-Id: 2373959956747914140 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeduiedruddvkedgtdelucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucenucfjughrpefuvfhfhffkffgfgggjtgfgsehtkeertddtfeehnecuhfhrohhmpefiihhllhgvshcuffgrrhholhguuceoghhilhhlvghssegurghrohhlugdrnhgvtheqnecuggftrfgrthhtvghrnhepfeffveefvdffuedvgfeihfekleevveegtedvffetgfeufeefueevtefhveevjefgnecukfhppedtrddtrddtrddtpdelvddrudefjedrgeefrddugedvnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmohguvgepshhmthhpqdhouhhtpdhhvghlohepphhlrgihvghrjeelkedrhhgrrdhovhhhrdhnvghtpdhinhgvtheptddrtddrtddrtddpmhgrihhlfhhrohhmpehgihhllhgvshesuggrrhholhgurdhnvghtpdhrtghpthhtohepphhgshhqlhdqhhgrtghkvghrsheslhhishhtshdrphhoshhtghhrvghsqhhlrdhorhhg List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk Le 28/08/2020 à 16:52, Stephen Frost a écrit : > Greetings, > > * Gilles Darold (gilles@darold.net) wrote: >> Le 28/08/2020 à 15:26, Stephen Frost a écrit : >>> * Magnus Hagander (magnus@hagander.net) wrote: >>>> On Fri, Aug 28, 2020 at 2:38 PM Stephen Frost wrote: >>>>> * Magnus Hagander (magnus@hagander.net) wrote: >>>>>> Without having actually looked at the code, definite +1 for this feature. >>>>>> It's much requested... >>>>> Thanks. >>>>> >>>>>> But, should we also have a pg_write_all_data to go along with it? >>>>> Perhaps, but could certainly be a different patch, and it'd need to be >>>>> better defined, it seems to me... read_all is pretty straight-forward >>>>> (the general goal being "make pg_dumpall/pg_dump work"), what would >>>>> write mean? INSERT? DELETE? TRUNCATE? ALTER TABLE? System catalogs? >>>> Well, it's pg_write_all_*data*, so it certainly wouldn't be alter table or >>>> system catalogs. >>>> >>>> I'd say insert/update/delete yes. >>>> >>>> TRUNCATE is always an outlier.Given it's generally classified as DDL, I >>>> wouldn't include it. >>> Alright, that seems like it'd be pretty easy. We already have a check >>> in pg_class_aclmask to disallow modification of system catalogs w/o >>> being a superuser, so we should be alright to add a similar check for >>> insert/update/delete just below where I added the SELECT check. >>> >>>>> Doesn't seem like you could just declare it to be 'allow pg_restore' >>>>> either, as that might include creating untrusted functions, et al. >>>> No definitely not. That wouldn't be the usecase at all :) >>> Good. :) >>> >>>> (and fwiw to me the main use case for read_all_data also isn't pg_dump, >>>> because most people using pg_dump are already db owner or higher in my >>>> experience. But it is nice that it helps with that too) >>> Glad to have confirmation that there's other use-cases this helps with. >>> >>> I'll post an updated patch with that added in a day or two. >> Looking at this thread I was thinking about the FDW. Does role >> pg_read_all_data will allow to execute pg_dump with --include-foreign-data >> option? If this is the case how about priviledge on fdw and foreign server? >> If this is the behavior we want I guess that the modification should be >> applied to pg_foreign_data_wrapper_aclmask() and pg_foreign_server_aclmask() >> too. > Using an FDW will often also require having a user mapping and there's > no way for that to be accomplished through only GRANT'ing a default > role, so I don't think we should mix this specific role with the FDW > permissions system. I'm fine with that, perhaps it should be mentioned in the documentation that foreign tables are not covered by this role. -- Gilles Darold