Как я могу ограничить SQL-запрос, чтобы быть неразрушающим? - PullRequest
2 голосов
/ 21 февраля 2010

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

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

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

Спасибо.

Ответы [ 2 ]

14 голосов
/ 21 февраля 2010

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

1 голос
/ 21 февраля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...