]> 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:19:09 +0000 (08:19 +0100)
committerDean Rasheed <dean.a.rasheed@gmail.com>
Tue, 2 Apr 2019 07:19:09 +0000 (08:19 +0100)
commitdb4bc99948bf746c7035b49cc581eb1c44a30788
treebfbe016c86c7c5f7bfdc8f80aab37682780d3a10
parent327399412d035a3951f48d74356ff1449b9b7e91
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