Существующее решение для обмена данными базы данных полезно, но безопасно? - PullRequest
2 голосов
/ 16 января 2011

Я хочу поделиться БД информации (например, geonames.db.94y.info, пользовательская версия geonames db) полезно, но безопасно. Есть ли хороший способ сделать это ?:

  • Не следует заставлять людей скачивать БД для получения полезной информации.

  • Мое текущее решение - разрешить произвольные запросы SELECT с максимальное время процессора 5 с.

  • Запросы SELECT позволяют получить НЕКОТОРОЙ полезную информацию, такую ​​как в мире 50 самых густонаселенных "городов", а общая численность населения во всех городов мира:

http://7cdf2e8dd01ab370c96c4d3daf67c5fb.geonames.db.94y.info/ http://d6da02fc16ae6e5afbf2a4c60b1e4e5c.geonames.db.94y.info/

  • Мы видим, что в самом густонаселенном городе (Сан-Паулу, 9839066) около 1,19% городского населения мира (829523357). Мы можем даже написать (неэффективный) запрос для этого:

http://245bd4d07c2c5179dd37d8f7520ee7cf.geonames.db.94y.info/

  • Как насчет двух лучших городов вместе взятых? Какой процент городское население мира они? Топ 3 вместе взятых? Топ н комбинированный?

  • Для этого и более сложных примеров нам нужен PL, или, возможно, Нечто большее. Пока я в порядке, давая людям доступ только для чтения БД, Я не уверен, что запуск произвольных команд PL будет безопасным.

  • Примечание. Я понимаю, что MySQL может выполнять «накопительные» запросы, как это, но:

    • Это не стандартный SQL

    • Я использую SQLite3

    • Требуется несколько запросов, но я разрешаю только один запрос за раз

    • Я уверен, что есть примеры, которые даже MySQL не мог обработать.

  • По сути, я хочу позволить людям получать любую информацию, которую они хотят, из БД без загрузки, если они не меняют данные или съесть слишком много процессорного времени.

Есть ли здесь известное решение? Я знаю о Drupal и других CMS, но я не думаю, что они могут делать такие вещи?

[Примечание: я использую geonames.db в качестве примера, но он в тестировании не полагайтесь на данные / результаты]

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