Например, я часто хотел искать StackOverflow с«Безопасное» позволяет пользователям осуществлять поиск с SQL
SELECT whatever FROM questions WHERE
views * N + votes * M > answers AND NOT(answered) ORDER BY views;
или что-то в этом роде.
Есть ли разумный способ позволить пользователям использовать SQL в качестве языка поиска/фильтра?
Я вижу несколько проблем с ним:
- Доступ/изменение вещи (учетная запись тщательно пользователь установки должен исправить)
- SQL инъекции (учитывая предыдущий худшее, они должны быть в состоянии сделать это получить обратно мусор и аварии там сессии).
- DOS-атаки с патологическими запросами
- Какие индексы вы им дадите?
Редактировать: Я бы хотел разрешить объединение, а что нет.
Да, я вижу, что я могу быть более безопасным, давая психу ядерное оружие, но я на самом деле не планирую это делать. – BCS
Я знаю, что вы давно это задали, в вашем примере - вы видели http://data.stackexchange.com/? Вы можете использовать SQL для запроса всего! Теперь я просматриваю их исходный код, чтобы узнать, сделали ли они что-нибудь особенное. – MikeMurko
@MikeMurko: я не специально ищу решение ES/SO, а скорее общий способ принимать (частичные?) SQL-запросы от недоверенных конечных пользователей. – BCS