Re: Postgres 12 RLS
От | Laura Smith |
---|---|
Тема | Re: Postgres 12 RLS |
Дата | |
Msg-id | UG1dqoKMj2nRTEjLDuxSFS6Utugw0A7jcNQrXjURQXX4v6qj4Ugbn7o-GhJTmP4RTH00wCRnXBnLTqfj50ZiFn2SV7v2fabAenPbAr0DYeI=@protonmail.ch обсуждение исходный текст |
Ответ на | Re: Postgres 12 RLS (Paul Förster <paul.foerster@gmail.com>) |
Список | pgsql-general |
On Monday, 8 June 2020 12:42, Paul Förster <paul.foerster@gmail.com> wrote: > Hi Laura, > > > On 08. Jun, 2020, at 12:46, Laura Smith n5d9xq3ti233xiyif2vp@protonmail.ch I had a lightbulb moment just now and triedthat, but it doesn't seem to be working. > > The app returns "pg_execute(): Query failed: ERROR: permission denied for table...." > > This is despite me: > > • Changing to SECURITY INVOKER on the PG function. > > • Granting the app user relevant perms on the underlying table > > • Re-granting execute for the app on the function > > Am I missing somehthing ? > > another possibility maybe is to use session_user instead of current_user in your policy. > > current_user name user name of current execution context > session_user name session user name > > The latter is the name of the user who actually started the session. So it should be myappuser in your case. > > https://www.postgresql.org/docs/current/functions-info.html > > Cheers, > Paul Thanks Paul, will experiment with session_user. But actually I found the solution, the function I was testing was using "INSERT ON CONFLICT UPDATE". And it seems that requiresSELECT permissions due to "ON CONFLICT" (appuser was previously only granted INSERT and UPDATE).
В списке pgsql-general по дате отправления: