无法使用SSL创建dbgct到Postgres

时间:2015-12-12 19:48:59

标签: r windows libpq rpostgresql

我正在运行一个我想要SSL的Postgres-9.4服务器。当我使用pgadmin或windows odbc连接从笔记本电脑连接到Postgres服务器时,它可以使用SSL。但是,当我尝试使用SSL连接R时,它会失败。

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"

之外我不会得到任何其他内容

我发现this question似乎表明我做了正确的事,但是没有去。

编辑:

我做了一些挖掘并发现this discussion,这表明由于各种库/ dll问题,这不会在Windows上运行。那个讨论在这一点上已经有几年了,所以也许它已经解决了。我可以确认从linux上执行上述操作确实有效。

1 个答案:

答案 0 :(得分:0)

我对问题的理解是RPostgreSQL使用的客户端不支持SSL。

我切换到RPostgres软件包并使其工作。我首先使用install.packages('RPostgres')安装了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")
)