Я бы порекомендовал использовать что-то вроде туннелей SSH для переноса ваших соединений JDBC через брандмауэр. Настройте туннель на машине DMZ на любой публично открытый порт, который вы можете, и подключите другой конец туннеля к соответствующему порту на сервере БД.
Затем просто измените параметры подключения JDBC, чтобы подключиться к общему порту туннельного компьютера, и он будет прозрачно обмениваться данными с базой данных, как обычно, при прохождении через брандмауэр через принятый порт.
Если это проблема ИТ-политики, поскольку они не позволят вам получить прямой доступ к базе данных, вам нужно будет решить, что вам разрешено делать , и работать с этим настолько, насколько это возможно. возможный. В этом случае переход к JDBC на другой метод доступа вряд ли будет приемлемым для ИТ-политики.
Редактировать : после прочтения ответа Джона он может быть прав. Я предполагал, что проблема была в связи между вашим сервером / веб-приложением и сервером базы данных. Если вы говорили о клиенте, создающем прямые JDBC-соединения с базой данных, то да - брандмауэр или нет, это очень плохая практика. Клиент должен обратиться к вашему серверу, чтобы узнать, чего он хочет, а ваш сервер должен выполнить запросы к БД, необходимые для получения информации.