На вопрос «как сделать» отвечает документация и поиск в интернет.
Тут отвечают на вопросы «почему я сделал, как в документации, а оно не работает. Поискал в интернет, вот запросы, в ответах не нашел. Что я делаю не так?»
Покажите, как вы пробовали решить проблему, приведите код попытки (пусть неудачной), опишите, как запускали, что ожидали и что получилось.
За готовыми решениями - на фриланс. В текущем виде это не вопрос, а задание. Нарушен п.5.12 Регламента.
Стандартное решение - для каждого сеанса развёртывается временная копия БД, которая прибивается после сеанса. И создаётся пользователь, который имеет права только в данной БД. Плюс внешние ограничения - на максимальный размер БД в файловой системе, к примеру. Так что любой идиотизм пользователя разбивается об уничтожение плодов его труда после закрытия сеанса.
Фиксация правильных решений и последующее их применение на рабочей БД - забота и ответственность пользователя.
Первое. Песочницы можно создавать с помощью Docker.
Второе. Настройками нужно ограничить настолько чтоб пользователь мог только лишь решить задачу leetcode
и получить корректный ответ. Должны быть квоты на память, процессор и диск. Должны быть квоты
на время исполнения query. Любая попытка превысить квоту - должна моментально прерывать сессию
пользователя и перегружать контейнер.
Проблема всех песочниц в том что они предлагают в чистом виде SQL-инжекцию. И это принципиально нерешаемо. Вобщем не забываем про fork-bomb и прочие трюки которые могут даже в условно безопасной
песочнице создавать проблемы.