Spring JdbcTemplate - Как ограничить запросы SELECT (s)? - PullRequest
0 голосов
/ 04 февраля 2011

Я пишу программу, которая использует JdbcTemplate и выполняет запрос пользователя. Есть ли способ через пакет Spring JDBC, который я могу ограничить пользовательские запросы инструкциями SELECT? Я не хочу, чтобы пользователи выполняли какие-либо запросы, которые обновляют базовую базу данных.

Спасибо
КТМ

Ответы [ 3 ]

4 голосов
/ 04 февраля 2011

Spring JDBC не может сделать это автоматически, вам придется написать свой собственный адаптер и убедиться, что весь ваш код вызывает адаптер.

Рассматривали ли вы использование привилегий БД для достижения того, чего вы хотите? Это зависит от степени детализации вашей безопасности, но рекомендуется создать пользователя базы данных «приложения», который будет отдельной учетной записью от учетной записи владельца базы данных. Затем вы предоставляете соответствующие привилегии для каждой таблицы.

1 голос
/ 04 февраля 2011

Пружина безопасности предназначена для этого. Он имеет предопределенные таблицы для обработки доступа.

0 голосов
/ 05 февраля 2011

Если у вас есть опция, рассмотрите возможность использования JPA (Java Persistence API);Query-объекты имеют отдельные getResultList и getSingleResult -методы, которые генерируют исключения, если запрос является DELETE или UPDATE (удаление и обновление обрабатываются только через executeUpdate ).

...