Где сервер БД должен быть, и его сценарии обновлений должны работать от где?

У меня в настоящее время есть веб-приложение и база данных по тому же серверу. Я перемещаю базу данных в новый сервер, который является spec'd для того, чтобы быть базой данных. Теперь у меня есть ночные сценарии, которые работают на веб-приложении, которые вставляют и обновляют данные для приложения от нашей ERP-системы. Должны сценарии, которые делают этот импорт, выполненный от сервера базы данных или от сервера приложений? Имеет смысл мне держать всю вместе прикладную логику, но с точки зрения производительности это имеет больше смысла (я думаю) иметь сценарии, которые обновляют базу данных ночью, чтобы быть выполненными от фактического сервера базы данных.

May или не может быть необходима для вопроса, но у меня есть веб-сайт и 3 веб-приложения, которые все преобразовываются от установок локальной базы данных до новой центральной базы данных.

Последний вопрос сервер базы данных должен быть в демилитаризованной зоне, но заблокирован вниз, чтобы только принять соединения для приложения, служит IP, или это должно быть позади брандмауэра?

Дополнительная информация, если полезный: приложения Python (TG и Фляга) все убегание postgresql 9

Править: Если это - неправильное место для этого, сообщил мне, где оно должно быть отправлено. Я первоначально имел его в программистах, но не получил ответов и после перечитывания моих вопросов, этот сайт просто чувствовал себя "лучше".

0
задан 28 January 2015 в 22:03
1 ответ

При малой задержке между сервером приложений и сервером базы данных производительность будет в основном одинаковой, независимо от того, на какой стороне вы запускаете сценарии.

Я голосую за то, что легче всего поддерживать. Две причины хранить сценарии на сервере приложений:

1) Меньше изменений в существующем способе работы

2) Весь ваш код (включая эти сценарии) находится в одном месте. Это может иметь преимущества при управлении версиями / развертывании.

И для межсетевого экрана / DMZ: чем меньше доверие между базой данных и приложением, тем лучше. Если вы можете поместить сервер базы данных за брандмауэр и разрешить только порты PostgreSQL (5432 / tcp по умолчанию) только с вашего сервера приложений в DMZ, тогда скомпрометированная учетная запись приложения должна будет пройти через порт PostgreSQL для дальнейшего проникновения или выбросить ваши данные.

Затем вы можете дополнительно ограничить приложение на уровне базы данных с помощью:

1) Минимальных разрешений базы данных приложения (только выбор, где это необходимо, ...)

2) Обновляемые представления (метод которые могут обеспечивать более ограниченные обновления данных)

3) Триггеры при обновлении (еще один метод, который может ограничивать обновления)

Уровни безопасности:)

1
ответ дан 4 December 2019 в 17:04

Теги

Похожие вопросы