Обратный инжиниринг базы данных PostgreSQL с SSL-соединением в SchemaSpy
При запуске SchemaSpy выдается ошибка:
Соединение не удалось из-за следующей ошибки: "нет записи pg_hba.conf для хоста"xxx.xxx.xxx.xxx", пользователь"xxxx", база данных"xxx", SSL выключен"
Ошибка возникает из-за того, что для базы данных требуется соединение SSL.
Есть ли способ включить флаг SSL для соединения в SchemaSpy, я открыл файл jar, но ничего не смог найти. Я знаю, что драйвер PostgreSQL JDBC поддерживает SSL, поэтому это должно быть теоретически возможно.
В противном случае, если кто-нибудь знает какие-либо инструменты с открытым исходным кодом / бесплатные программы для реверс-инжиниринга базы данных postgresql с SSL-соединениями, это бы очень помогло.
Благодарю.
2 ответа
Сделай это так:
java -jar schemaSpy_5.0.0 -t pgsql -host your-host-url -db ваше-имя-базы-данных -s ваша-схема-базы данных -u ваше-имя пользователя -p ваш-пароль -connprops "ssl\=true;sslfactory\=org.postgresql.ssl.NonValidatingFactory" -o путь-к-вашему-выходному-каталогу -dp-путь к вашему-jdbc-driver-jar-файлу
Хитрость: добавление некоторых дополнительных параметров с помощью опции -connprops: мы устанавливаем SSL в значение true (параметр ssl) и просим клиента (т.е. драйвер) безоговорочно принять соединение SSL (параметр sslfactory).
Согласно документации PgJDBC, используйте ssl=true
опция в параметрах вашего URL, например
jdbc:postgresql://myhost/mydb?ssl=true
Если у хоста нет действующего сертификата или сертификат не совпадает с его именем, вы также можете отключить проверку SSL.
SchemaSpy принимает URL-адрес JDBC для соединения, так что это будет работать нормально.