Re: Foreign Key Validation after Reference Table Ownership Change

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: Louis Battuello <louis(dot)battuello(at)etasseo(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>, "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: Foreign Key Validation after Reference Table Ownership Change
Date: 2018-03-21 17:51:41
Message-ID: e617f9f3-6bef-f2d5-2810-1ae9535964bd@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 03/21/2018 10:48 AM, Louis Battuello wrote:
>
>>
>> The point is you can't resolve a name like "schema_1.something" unless
>> you have USAGE on schema_1. So the RI-checking query, which is run as
>> the owner of the table, fails at parse time.
>
> That certainly makes sense for user_2 that owns the reference table and is blocked by not having usage on the reference table’s schema.
>
> But, user_1 owns both schemas and has usage on both but no longer owns the reference table in one schema. Why is user_1’s insert on the referencing table failing? Is the validation of the FK no longer done as user_1?
>

From Tom's post:
"
The point is you can't resolve a name like "schema_1.something" unless
you have USAGE on schema_1. So the RI-checking query, which is run as
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

the owner of the table, fails at parse time."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

It is not the user that is doing the INSERT that matters it is the user
that owns the table that matters.

--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2018-03-21 17:52:41 Re: Foreign Key Validation after Reference Table Ownership Change
Previous Message Louis Battuello 2018-03-21 17:48:15 Re: Foreign Key Validation after Reference Table Ownership Change