У нас есть приложение, которое использует базу данных на моем рабочем месте. В настоящее время для аутентификации используется пароль имени пользователя (хотя мы могли бы использовать доверенные IP-соединения). Мы не хотим использовать доверие из-за перемещения, которое мы будем делать с IP-адресами для определенных машин, на которых находятся приложение и база данных.
В настоящее время, поскольку мы применяем имя пользователя и пароль, установленные в файлах конфигурации в приложении, у нас есть разработчики в дополнение к моему боссу, который является системным администратором, и шестью его подчиненными, знающими пароль (я являюсь главным), потому что любой из нас, администратор на ротационной основе, поддерживает и развертывает приложение. Как таковой, В последнее время мы начали чаще менять пароль, но теперь я хочу, чтобы только я знал этот пароль. Я единственный, кто должен запускать запросы к базе данных напрямую по указанию моего начальника. Даже моему боссу незачем знать это с головы до ног (возможно, в мое отсутствие и официально). Я подумал о том, чтобы сделать следующее:
Я думаю, что разработчики по-прежнему смогут раскрыть пароль, если в приложении они сохранят код, который делает это за них (НЕ то, что они зловещие, мы просто пытаемся коллективно оптимизировать коллективный риск)
Вопрос Есть ли лучший способ усовершенствовать этот подход, и есть ли другой способ, который я могу использовать, кроме этого.
Платформы: Linux (Ubuntu Server), PostgreSQL, Java
Старый способ unix / linux:
vi /etc/my_app.conf
database_ip=192.168.123.123
database_instance=db1
database_user=my_app
database_password=secret_in_plaintext
Это не решает вашу проблему сразу, но ... В будущем вы можете развернуть точно такие же двоичные файлы приложения (war / jar) в различных серверов приложений (производство, подготовка, тестирование, разработка). Все они могут иметь разные базы данных (prod, pre, test, dev). Таким образом, со временем разработчикам вообще не понадобится доступ к производственной среде.