Postgresql сначала выполняет обратный поиск DNS при проверке pg_hba.conf. Поэтому важно, что такое обратный DNS. Это также означает, что это не сработает:
hostssl all replica .rds.amazonaws.com md5
Вы можете сделать:
hostssl all replica .us-west-2.compute.amazonaws.com md5
Но если вы правильно останетесь, это оставит очень открытую конфигурацию, которая позволит любому компьютер, работающий в этом регионе AWS, для подключения с правильным паролем md5.
Это оставляет по существу два разных варианта решения этой проблемы.
Вариант 1 - Частная сеть и VPN
С помощью AWS VPC вы можете настроить частную сеть и группы подсетей для своего экземпляра RDS, где ему будут назначаться IP-адреса в IP-пространство, которое вы можете контролировать. Допустим, у вас есть подсеть 10.10.10.0/24
. Это значит, что вы можете опубликовать 10.10.10.0/24
в своем pg_hba.conf
. Это потребует какой-то VPN-настройки между VPC и вашим сервером.
В зависимости от типа сетевого оборудования, установленного в подвале, вы можете использовать AWS Site-to-Site VPN . В качестве альтернативы вы можете использовать другие решения полочных решений, такие как OpenVPN или WireGuard .
Вариант 2 - Динамическое обновление pg_hba.conf
Если вы не хотите дополнительной сложности VPN. Вы можете иметь скрипт каждые 5 минут, запрашивать имя хоста my-db.random-string.us-west-2.rds.amazonaws.com
, а затем обновлять pg_hba.conf по мере необходимости и отправлять сигнал SIGHUP в postgres. Это не самое симпатичное решение, но должно позволить ему работать полуавтоматически. Если для этого соединения не требуется простои, это вряд ли будет идеальным решением.
У меня есть очень простой способ определить это ... Если код специфичен для проекта (не используется в другом месте), я включаю его явно. Весь общий код извлекается из пути к библиотеке.
С наилучшими пожеланиями, дон
Я не думаю, что смогу подсчитать, сколько раз я помогал тому, кто обнаружил, что компилятор находил дубликат копии модуля где-то в их пути поиска, где они не ожидали найти его. Они не могли понять, почему они меняли свой код в редакторе (на копии блоков, не найденных в пути поиска) и не видели каких-либо изменений в поведении приложения. Явное включение модуля и отсутствие указания пути поиска означает, что компилятором может быть найдена только одна копия модуля.
После двухкратного обновления Delphi и переноса моего проекта на новые компьютеры я узнал, что жестко запрограммированные пути являются злом, поскольку корневые каталоги имеют тенденцию изменяться. Вдвойне, если вы работаете над общим проектом.
Общий код против конкретного кода является хорошим правилом.
Я часто использую VSSConnextion , так что файлы, которые мне обычно нужно извлекать вместе, естественно, принадлежат одному и тому же проекту.
Это было рассмотрено здесь ранее:
Мой ответ на первый вопрос также является моим ответом на ваш вопрос.
мои библиотеки находятся в SVN, и я обычно проверяю их для (разветвляю) проекта в ../libraries относительно проекта. Это сохраняет объем включенных директорий маленьким и точным.
В реальном источнике (.pas) пути полностью запрещены.
нет связанных с проектом путей в глобальном пути поиска delphi (только для проекта, или они действительно являются универсально общими источниками / компонентами)
Я ненавижу загрязняющий источник с жестко закодированными путями, поэтому у меня обычно всего несколько единиц в проекте, всегда с относительными путями. Не взломать VSS w: \ диск взломать, пожалуйста! Обычно это модули, которые тянут части каркаса или необходимы из-за визуального наследования или инициализации формы.
К сожалению, относительные пути могут быть опасны для Delphi, потому что они относятся к рабочему каталогу, который может меняться в соответствии с диалогами Delphi (например, Open). Решение простое, включите в основной проект включаемый файл с уникальным именем.
У меня была такая же проблема. Синие точки не отображаются в желобе.
Простое решение (одно из):
Меню> Проект> Компилятор> Конфигурация сборки ... установить DEBUG вместо выпуска.
Delphi 2007
] PS: ну, я думал , что закончил кодирование. Кто-то запросил новую функцию. :)