Запуск Heroku Postgres с наименьшими привилегиями

Могу ли я подключиться к базе данных Heroku Postgres через веб / приложение без риска уронить стол?

Я создаю приложение Heroku для третьей стороны, которая использует Heroku Postgres для бэкэнда. Сторонние разработчики очень чувствительны к безопасности, поэтому я смотрю на применение "Многоуровневой безопасности" во всем приложении. Например, проверка атак с использованием SQL-инъекций на уровне веб-приложений. Применяя подход "Многоуровневая безопасность", я также должен защитить базу данных на случай, если пропущена потенциальная атака SQL-инъекции, которая может привести к удалению таблицы базы данных.

В других системах, которые я построил, в базе данных было бы минимум два пользователя. Во-первых, администратор базы данных, который создает / удаляет таблицы, индексы, триггеры и т. Д., И пользователь приложения, который будет работать с меньшими правами, чем администратор базы данных, который может, например, только вставлять и обновлять записи.

В настройке Heroku Postgres, похоже, нет способа создать другого пользователя с меньшими правами (без опции "перетаскивать таблицу"). Таким образом, приложение должно подключиться к пользователю Heroku Postgres по умолчанию, и поэтому может возникнуть риск "удаления таблицы".

Я работаю над дополнением Heroku Postgres Crane.

Кто-нибудь сталкивался с этим или получил какие-то творческие решения для этого сценария?

1 ответ

С Heroku Postgres у вас есть только одна учетная запись для подключения. Одна из опций, которая существует для этого типа функциональности, - это создать последователя на Heroku Postgres. Подписчик обновляется асинхронно (обычно только на секунду или чуть позже) и доступен только для чтения. Это позволит вам предоставить доступ к подписчику тем, кто в этом нуждается, но не предоставит им детали для лидера БД.

Другие вопросы по тегам