Re: Security Definer functions no longer works in PG14+ - Mailing list pgsql-bugs

From Jan Katins
Subject Re: Security Definer functions no longer works in PG14+
Date
Msg-id CAAc324hNuW-FqTnpXbsyA8FmocoGx7AcULiFE7yxmqiw2gKkfQ@mail.gmail.com
Whole thread Raw
In response to Security Definer functions no longer works in PG14+  (Jobin Augustine <jobinau@gmail.com>)
Responses Re: Security Definer functions no longer works in PG14+
Re: Security Definer functions no longer works in PG14+
List pgsql-bugs
Hi,

The aiven-extras repo has a workaround for that, using dblink: https://github.com/aiven/aiven-extras/commit/eb8c1107ca91a7da5ecb0c8127c94ce42762881d

Jan

On Thu, 5 May 2022, 17:49 Jobin Augustine, <jobinau@gmail.com> wrote:
Hello Community and Hackers,

A function like:

CREATE OR REPLACE  FUNCTION fn_sql_refresh() RETURNS void AS $$
    ALTER SUBSCRIPTION sub REFRESH PUBLICATION;
$$ LANGUAGE SQL SECURITY DEFINER;

Works with PostgreSQL 13 and older versions.
But gives error on PostgreSQL 14 as follows:

postgres=> select fn_sql_refresh();
ERROR:  ALTER SUBSCRIPTION ... REFRESH cannot be executed from a function
CONTEXT:  SQL function "fn_sql_refresh" statement 1


But it is hurting good operational use cases of logical replication.

Regards,
Jobin.

pgsql-bugs by date:

Previous
From: Jobin Augustine
Date:
Subject: Security Definer functions no longer works in PG14+
Next
From: Masahiko Sawada
Date:
Subject: Re: Implicitly created operator family not listed by pg_event_trigger_ddl_commands