Как я могу ограничить SQL-запрос, чтобы быть неразрушающим?

Я планирую создать приложение для просмотра журналов Django с мощными фильтрами. Я бы хотел, чтобы пользователь мог тонко фильтровать результаты с помощью некоторых пользовательских (возможно, специфичных для БД) запросов SELECT.

Тем не менее, я не люблю давать пользователю доступ на запись в базу данных. Есть ли способ убедиться, что запрос ничего не меняет в базе данных? Как флаг "пробега"? Или есть способ отфильтровать запросы SELECT, чтобы они никоим образом не вредили?

Я думал о выполнении запросов как отдельный пользователь MySQL, но я бы предпочел избежать хлопот. Я также подумал об использовании GQL-языка Google App Engine, но если есть более чистое решение, я бы определенно хотел услышать его:)

Благодарю.

2 ответа

Решение

Соединитесь с пользователем, которому предоставлены только разрешения SELECT. Ситуации, подобные этой, - вот почему разрешения существуют в первую очередь.

Создавайте и используйте немодифицируемые представления.

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