Re: Security Definer functions no longer works in PG14+

Поиск
Список
Период
Сортировка
От Jan Katins
Тема Re: Security Definer functions no longer works in PG14+
Дата
Msg-id CAAc324hNuW-FqTnpXbsyA8FmocoGx7AcULiFE7yxmqiw2gKkfQ@mail.gmail.com
обсуждение исходный текст
Ответ на Security Definer functions no longer works in PG14+  (Jobin Augustine <jobinau@gmail.com>)
Ответы Re: Security Definer functions no longer works in PG14+  (Jobin Augustine <jobin.augustine@percona.com>)
Re: Security Definer functions no longer works in PG14+  (Andrew Borodin <amborodin86@gmail.com>)
Список 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 по дате отправления:

Предыдущее
От: Jobin Augustine
Дата:
Сообщение: Security Definer functions no longer works in PG14+
Следующее
От: Masahiko Sawada
Дата:
Сообщение: Re: Implicitly created operator family not listed by pg_event_trigger_ddl_commands