Не могу создать dbConnect для Postgres с SSL

Я использую сервер Postgres-9.4, для которого мне требуется SSL. Когда я подключаюсь к серверу Postgres со своего ноутбука через соединение pgadmin или windows odbc, он работает с SSL. Однако, когда я пытаюсь соединиться с R, используя SSL, это терпит неудачу.

library(RPostgreSQL)
drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, 
                 user = "postgres", 
                 password = mypasswd, 
                 dbname = "dbname=postgres sslmode=prefer",
                 host = "192.168.1.179")

Если я установлю свой pg_hba.conf, чтобы разрешить не-ssl-соединения, то это будет работать. Когда я устанавливаю разрешить только SSL-соединения, это не удастся. к несчастью dbConnect не имеет verbose вариант, так что я не получаю ничего больше, чем could not connect postgres@192.168.1.179 on dbname "postgres"

Я нашел этот вопрос, который, кажется, говорит о том, что я делаю правильные вещи, но не пойду.

Редактировать:

Я сделал еще несколько копаний и нашел это обсуждение, которое предполагает, что это не будет работать на окнах из-за различных проблем библиотеки / DLL. Этому обсуждению уже несколько лет, поэтому, возможно, оно было решено. Я могу подтвердить, что выполнение вышеописанного в Linux работает.

0 ответов

Насколько я понимаю, проблема заключается в том, что RPostgreSQL использует клиент, не поддерживающий SSL.

Я переключился на пакет RPostgres и заставил его работать. Сначала я установил RPostgres сinstall.packages('RPostgres') затем использовал этот пакет для соединения с sslmode="require".

library('RPostgres') #Instead of library('RPostgreSQL')
con <- dbConnect(RPostgres::Postgres(),
                 user = "postgres", 
                 password = mypasswd, 
                 dbname = "postgres",
                 host = "192.168.1.179",
                 sslmode = "require")
)
Другие вопросы по тегам