Назад | Перейти на главную страницу

как получить доступ к моей локальной базе данных postgresql с моего веб-сайта

У нас есть приложение .Net на основе локальной сети с Postgresql 8.1, теперь у меня есть задача предоставить интерфейс на веб-сайте для чтения и записи двух таблиц в базе данных на основе локальной сети. Я не знаю, с чего начать. Пожалуйста, помогите мне решить эту проблему.

Lan: Windows NT 2003 .Net Postgresql 8.1.

Веб-сайт: PHP 5.3 Mysql

Это не совсем хорошо изученный вопрос и немного освещает детали. Как вы должны подойти к этому, зависит от чувствительности требуемого уровня безопасности и ожидаемого объема трафика. Но есть несколько подходов.

  1. Установите сетевое соединение (например, VPN / ipsec) между сайтами и подключитесь напрямую к базе данных.
  2. Настройте туннель SSH и перенаправьте порты. Немного «хакерский», и вам нужно убедиться, что туннель SSH запускается автоматически, это нормально для работы администратора, но на самом деле это не производственное решение.
  3. Добавьте сервер Postgresql в локальную сеть веб-сайта и реплицируйте данные между сайтами (Репликация Postgresql). Похоже, это было бы беспорядочным решением, потому что интерфейс веб-сайта должен записывать в базу данных LAN ... и я предполагаю, что база данных LAN также должна быть написана локально. На самом деле также требуется VPN.
  4. Настройте SSL, выставьте порт SSL Postgresql извне через NAT, подключитесь к внешнему IP-адресу LAN с веб-сайта и заблокируйте с помощью IP-политики на брандмауэре. Мне лично не нравится раскрывать базы данных в этом поместье, даже через SSL, но если хранящиеся в нем данные не являются конфиденциальными, это может быть вариантом. Безопасные соединения TCP / IP с SSL

Конечно, наличие двух отдельных приложений, записывающих в одну и ту же базовую базу данных, в любом случае, как правило, плохая идея - вам необходимо правильно заблокировать записи, чтобы гарантировать, что никакие данные не будут перезаписаны. Гораздо лучше предоставить API, в котором веб-приложение может запрашивать данные и сообщать приложению на стороне локальной сети, какие изменения следует внести. Затем вы можете обернуть его в HTTPS с аутентификацией или политикой на основе IP и просто перенаправить порты, что проще и надежнее, чем VPN.