Вся база создана от postgres-а. Все функции созданы от postgres и имеют права запуска SECURITY DEFINER.
Подразумевался смысл, что любой пользователь с правами на запуск функций не нуждался в определении прав на доступ к таблицам.
Теперь получается следующая проблема.
Создаю роль как в примерах:
CREATE ROLE readonly_group NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
Этой группе выдаю права на таблицы, представления, функции...если надо
например для схемы access:
GRANT SELECT ON ALL TABLES IN SCHEMA access TO GROUP readonly_group;
GRANT EXECUTE ON ALL functions IN SCHEMA access TO GROUP readonly_group;
Теперь добавляю пользователя test_user и назначаю его в эту группу:
CREATE ROLE test_user LOGIN UNENCRYPTED PASSWORD '1';
GRANT readonly_group TO test_user;
Затем делаю под этим пользователем
SELECT * FROM access.access_tbl
И pgAdmin 4 возвращает 0 строк, а Maestro говорит, что не прав доступа.
Причем SELECT * FROM access.get_rights('user');
Аналогично ничего не выполняет.
Подскажите пожалуйста где ошибка?
Проверил права
Проверил права доступа.
SELECT relacl from pg_catalog.pg_class where relname='access_tbl'
результат
{postgres=arwdDxt/postgres,readonly_group=arwdDxt/postgres,test_user=arwdDxt/postgres}
Вопрос снят! Забыл добавить
Вопрос снят! Забыл добавить права на схему.