Re: BUG #15708: RLS 'using' running as wrong user when called from a view
Stephen Frost <sfrost@snowman.net>
From: Stephen Frost <sfrost@snowman.net>
To: Dean Rasheed <dean.a.rasheed@gmail.com>
Cc: quae@daurnimator.com, pgsql-bugs@lists.postgresql.org, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2019-03-25T20:27:23Z
Lists: pgsql-bugs, pgsql-hackers
Greetings, * Dean Rasheed (dean.a.rasheed@gmail.com) wrote: > On Thu, 21 Mar 2019 at 00:39, PG Bug reporting form > <noreply@postgresql.org> wrote: > > > > This fails, seemingly because the RLS on 'bar' is being checked by alice, > > instead of the view owner bob: > > Yes I agree, that appears to be a bug. The subquery in the RLS policy > should be checked as the view owner -- i.e., we need to propagate the > checkAsUser for the RTE with RLS to any subqueries in its RLS > policies. Agreed. > It looks like the best place to fix it is in > get_policies_for_relation(), since that's where all the policies to be > applied for a given RTE are pulled together. Patch attached. Yes, on a quick review, that looks like a good solution to me as well. Thanks! Stephen
Commits
-
Perform RLS subquery checks as the right user when going via a view.
- 2e606d0ad798 9.5.17 landed
- 1b9a2f458b36 9.6.13 landed
- db4bc99948bf 10.8 landed
- 157dcf534f8e 11.3 landed
- e2d28c0f4047 12.0 landed