Задать вопрос
@bikishov
Fullstack enginer

Как создать sql песочницу?

Как можно создать песочницу для исполнения sql запросов как например сделано это на leetcode.

Независимое выполнение sql запросов и проверка результатов.

И как можно отлавливать крайние случаи, чтобы пользователь не выполнил лишнего и не положил саму базу.
  • Вопрос задан
  • 143 просмотра
Подписаться 1 Средний 3 комментария
Пригласить эксперта
Ответы на вопрос 3
sergey-gornostaev
@sergey-gornostaev Куратор тега SQL
Седой и строгий
Проще всего создавать отдельную схему под каждую песочницу.
Ответ написан
Комментировать
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Проще простого.
Скриптуете боевую схему.
Скриптуете тестовые данные.
Создаете юнит тест.
Профит!
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
Первое. Песочницы можно создавать с помощью Docker.

Второе. Настройками нужно ограничить настолько чтоб пользователь мог только лишь решить задачу leetcode
и получить корректный ответ. Должны быть квоты на память, процессор и диск. Должны быть квоты
на время исполнения query
. Любая попытка превысить квоту - должна моментально прерывать сессию
пользователя и перегружать контейнер.

Проблема всех песочниц в том что они предлагают в чистом виде SQL-инжекцию. И это принципиально нерешаемо. Вобщем не забываем про fork-bomb и прочие трюки которые могут даже в условно безопасной
песочнице создавать проблемы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы