У меня проблемы с настройкой нового пользователя в postgres, и отчасти это, вероятно, связано с моими знаниями о том, как все работает за кулисами в postgres. Я использую TestBox и Lucee для запуска модульных тестов, и все работает, как ожидалось, под суперпользователем postgres, но после создания нового пользователя и предоставленных привилегий модульный тест не выполняется
Вот мой код:
CREATE USER test_user WITH PASSWORD 'postgres';
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA not_public TO test_user;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO test_user;
GRANT EXECUTE ON ALL PROCEDURES IN SCHEMA public TO test_user;
GRANT EXECUTE ON ALL PROCEDURES IN SCHEMA not_public TO test_user;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO test_user;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA not_public TO test_user;
Модульный тест запускает процедуру из схемы publi c, которая ссылается на таблицы в схеме not_publi c, но сразу же выдает ошибку со следующим сообщением:
ERROR: permission denied for schema not_public Where: PL/pgSQL function p_unit__delete_test_production() line 18 at SQL statement
I выполнил следующее для нового пользователя / получателя:
SELECT table_catalog, table_schema, table_name, privilege_type
FROM information_schema.table_privileges
и все таблицы для всех схем, упомянутых в процедуре, имеют привилегии выбора, вставки, обновления и удаления. Есть ли какой-то шаг, который мне не хватает в моих грантах? Это проблема в другом? Любая помощь приветствуется!