с рандомными доступами на короткий срок, приводятся в нужный вид серией команд и отдаются приложению.
Пользователь создается так:
CREATE USER "{{name}}" WITH PASSWORD '{{password}}' VALID UNTIL '{{expiration}}';
GRANT project_rw TO "{{name}}";
ALTER ROLE "{{name}}" SET role project_rw;
ALTER ROLE "{{name}}" SET search_path TO django, public;
Сделал SET role project_rw чтобы объекты создаваемые пользователем (к примеру из автоматических миграций базы) принадлежали роли, а не текущему юзеру, иначе их потом никто не сможет поправить в другой миграции другим пользователем. Но этого не происходит 🙁 созданные таблицы привязались к юзернейму. Что я делаю не так?
владелец таблицы — пользователь, а не его роль в сессии. такая схема не будет работать. если вы хотите, чтобы у таблиц (и прочих объектов) был один владелец, надо: - создавать таблицы этим пользователем - явно менять владельца после создания другими пользователями Может быть возможно прикрыть это event триггером, не смотрел. Или таской в кроне…
Обсуждают сегодня