как решить.
Дано: есть база и её владелец kong.Есть также дополнительный пользователь kong_clone на который сделан grant kong to kong_clone. Так вот, когда приложение стартует миграции с пользователем kong_clone то ему выдаётся ошибка permission denied to schema public.
Вопрос, что нужно сделать, чтоб kong_clone обадал теми же правами на базу, что и owner?
Дополнение: пользователь kong_clone создаётся автоматом скриптом ротации, то есть мне надо что-то сделать не с kong_clone (которого ещё нет), а с kong
добавить к примеру в роли pg_readl_all_data / pg_write_all_data ?
pg_read_all_data это тоже роли, только встроенные Насколько помню, эта роль имеет право на select в схеме public Просто нужно включить нужную роль в роль pg_read_all_data, как вы делали это с конг и конг клон
grant pg_write_all_data to kong?
Да Но предварительно почитайте, что именно вам нужно https://postgrespro.ru/docs/postgresql/15/predefined-roles
мне нужно, чтоб kong_clone имел в базе те же права, что и owner (kong). Я сделал (ну не я, а скрипт, который ротирует креды) grant kong to kong_clone - но этого не хватает
pg_write_all_data - это получается cluster wide? тогда это не то, что мне нужно
Owner неявно имеет все права. Хоть читать, хоть писать Но право ownerа не наследуется при включении в роль (поправьте знатоки, если не прав) Для остальных ролей нужны явные права Еще, если не ошибаюсь, можно просто явно прописать kong grant на селект И если у роли kong_clone есть параметр inherit, должно все сработать
я сделал grant all on schema public to kong. всё равно вылазит permission denied for schema
Ошибка у конг-клона?
да. у kong изначально никаких ошибок
Можэт, не к той базе подключился? Так-то атрибут роли INHERIT, вот только он дефолтный потрму и так должэн быть включен.
Обсуждают сегодня