Есть некий веб-сервис, написанный на ... неважно, а то флейм будет, предоставляющий REST через http. С insert/update/delete в принципе все понятно, они контролируются логикой приложения, а вот с select все сложнее - клиентам необходимо делать сложные выборки со вложенными подзапросами, бешеными джойнами, группировками, аггрегацией и т.п. Причем разнообразие таких запросов обещает расти.
Задумался на тему нужности изобретений и маппинга возможностей SQL на JSON/URL-query, и очень мне не хочется все это делать.
А что если сделать так:
* создаем пользователя БД, который имеет права только на чтение некоторых таблиц определенной БД и все
* клиенты сервиса формируют SQL-запрос целиком, т.е. «select ... join ... where .. group by ... etc» и отправляют его строкой на сервис
* сервис выполняет его напрямую на БД от имени вышеуказанного пользователя
* результаты форматирует и отправляет клиенту
Насколько это будет безопасно/криво? С точки зрения скорости разработки/производительности - офигенно по-моему.
По безопасности - для таких запросов БД read-only, кроме того, можно на каждую таблицу создать VIEW, и дать доступ только к нему (таблицы запретить), а на уровне VIEW контролировать права доступа на чтение каждой строки (ACL определяемый приложением, не БД).
Еще хотелось бы насильно насаждать LIMIT x,y (в случае MySQL), чтобы нельзя было повесить всё запросом на миллионы строк (в проекте есть большие таблицы)
собственно вот. что скажут местные аналитики?
![](/photos/61854:-932707753.jpg)
Ответ на:
комментарий
от umren
![](/img/p.gif)
![](/img/p.gif)
Ответ на:
комментарий
от mashina
![](/img/p.gif)
![](/photos/106230:-540744410.png)
Ответ на:
комментарий
от zed_0xff
![](/img/p.gif)
Ответ на:
комментарий
от dib2
![](/photos/106230:-540744410.png)
Ответ на:
комментарий
от zed_0xff
![](/img/p.gif)
Ответ на:
комментарий
от dib2
![](/img/p.gif)
Ответ на:
комментарий
от anonymous
![](/img/p.gif)
![](/photos/105962:959150243.png)
Ответ на:
комментарий
от dib2
![](/img/p.gif)
Ответ на:
комментарий
от dib2
![](/photos/106230:-540744410.png)
![](/photos/111159:586261370.jpg)
![](/img/p.gif)
Ответ на:
комментарий
от vtVitus
![](/img/p.gif)
![](/photos/58673:195471864.jpg)
![](/img/p.gif)
![](/photos/100360:135694308.jpg)
![](/photos/52249:-714042038.jpg)
![](/img/p.gif)
Ответ на:
комментарий
от Deleted
![](/img/p.gif)
Ответ на:
комментарий
от dib2
![](/img/p.gif)
Ответ на:
комментарий
от Deleted
![](/img/p.gif)
Ответ на:
комментарий
от Deleted
![](/img/p.gif)
![](/img/p.gif)
![](/img/p.gif)
Ответ на:
комментарий
от gh0stwizard
![](/img/p.gif)
Ответ на:
комментарий
от feofil
![](/img/p.gif)
Ответ на:
комментарий
от dib2
![](/img/p.gif)
Ответ на:
комментарий
от Deleted
![](/img/p.gif)
Ответ на:
комментарий
от Deleted
![](/img/p.gif)
Ответ на:
комментарий
от gh0stwizard
![](/img/p.gif)
Ответ на:
комментарий
от dib2
![](/img/p.gif)
![](/photos/25118:1231162565.png)
Ответ на:
комментарий
от dib2
![](/img/p.gif)
![](/photos/23214.jpg)
Ответ на:
комментарий
от TERRANZ
![](/img/p.gif)
Ответ на:
комментарий
от gh0stwizard
![](/img/p.gif)
![](/img/p.gif)
Ответ на:
комментарий
от legolegs
![](/img/p.gif)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Новости Google представил Lovefield — SQL- подобный движок запросов к БД на основе Javascript (2014)
- Форум Ищу тестировщика к себе в команду (2020)
- Форум Web сервисы (2005)
- Форум напрограммировать web сервис (2010)
- Форум Web-сервис eclipse (2024)
- Форум p2p -> web сервис (2008)
- Форум web-mail сервис (2006)
- Новости Вышел PostgreSQL 9.5! (2016)
- Форум Консультацья по «партнёру» web-сервиса (2013)
- Форум web-лицо для нескольких сервисов (2014)