]> granicus.if.org Git - postgresql/commit
Perform RLS subquery checks as the right user when going via a view.
authorDean Rasheed <dean.a.rasheed@gmail.com>
Tue, 2 Apr 2019 07:22:48 +0000 (08:22 +0100)
committerDean Rasheed <dean.a.rasheed@gmail.com>
Tue, 2 Apr 2019 07:22:48 +0000 (08:22 +0100)
commit2e606d0ad7984c15f323eacfc333990b93683cc7
tree9c95e2539af1869961792eaddf2f539d6e687629
parent52e7e4d1dfe6e8f3b0923458cda732e8cb230719
Perform RLS subquery checks as the right user when going via a view.

When accessing a table with RLS via a view, the RLS checks are
performed as the view owner. However, the code neglected to propagate
that to any subqueries in the RLS checks. Fix that by calling
setRuleCheckAsUser() for all RLS policy quals and withCheckOption
checks for RTEs with RLS.

Back-patch to 9.5 where RLS was added.

Per bug #15708 from daurnimator.

Discussion: https://postgr.es/m/15708-d65cab2ce9b1717a@postgresql.org
src/backend/rewrite/rowsecurity.c
src/test/regress/expected/rowsecurity.out
src/test/regress/sql/rowsecurity.sql