Re: SET ROLE x NO RESET - Mailing list pgsql-hackers

From Michał Kłeczek
Subject Re: SET ROLE x NO RESET
Date
Msg-id 9958E120-8C00-4415-BF1B-7557DCDDC208@kleczek.org
Whole thread Raw
In response to Re: SET ROLE x NO RESET  (Jelte Fennema-Nio <postgres@jeltef.nl>)
List pgsql-hackers

> On 3 Jan 2024, at 18:22, Jelte Fennema-Nio <postgres@jeltef.nl> wrote:
>
>
>> In my case I have scripts that I want to execute with limited privileges
>> and make sure the scripts cannot escape the sandbox via RESET ROLE.
>
> Depending on the desired workflow I think that could work for you too.
> Because it allows you to do this (and use -f script.sql instead of -c
> 'select ...):
>
> ❯ psql "user=postgres _pq_.protocol_managed_params=role options='-c
> role=pg_read_all_data'" -c 'select current_user; set role postgres'
>   current_user
> ──────────────────
> pg_read_all_data
> (1 row)
>
> ERROR:  42501: parameter can only be set at the protocol level "role"
> LOCATION:  set_config_with_handle, guc.c:3583
> Time: 0.667 ms

My scripts are actually Liquibase change logs.
I’ve extended Liquibase so that each change set is executed with limited privileges.

While doable with protocol level implementation, it would require support from PgJDBC.

—
Michal




pgsql-hackers by date:

Previous
From: Peter Smith
Date:
Subject: Re: Documentation to upgrade logical replication cluster
Next
From: Nathan Bossart
Date:
Subject: Re: verify predefined LWLocks have entries in wait_event_names.txt