Обсуждение: pg_dump & RLS
Hi all,
Sorry if this is not the appropriate list, I think so.
- ¿is posible to export using pg_dump only the rows that satisfy a rls check?
- Of course, yes, use the --enable-row-security option in pg_dump
- Yes, but my RLS expression relies on a GUC:
CREATE POLICY my_policy ON my_table USING (company_id = current_setting('company_id')::int);
Prior to starting dumping I need to set the company_id GUC into the session, if not, there's no way to only export some rows.
Any ideas?
- Execute a command before starting the export
- Some kind of login trigger for a special user
- ...
Thank you!
=?UTF-8?Q?Eduard_Catal=C3=A0?= <eduard.catala@gmail.com> writes:
> - ¿is posible to export using pg_dump only the rows that satisfy a rls
> check?
> - Of course, yes, use the --enable-row-security option in pg_dump
> - Yes, but my RLS expression relies on a GUC:
> CREATE POLICY my_policy ON my_table USING (company_id =
> *current_setting('company_id')::int*);
That isn't the world's greatest design, but you should be
able to do something like
export PGOPTIONS="-c custom.company_id=42"
pg_dump ...
I kind of wonder why bother with RLS if any user can bypass it
just by changing a GUC, though. It'd be better for the policy
to check something like role membership.
regards, tom lane