r语言 - 无法创建 db使用 SSL 连接到 Postgres



我正在运行一台Postgres-9.4服务器,我希望它需要SSL。当我通过pgadmin或windowsodbc连接从笔记本电脑连接到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" ,我什么都没有

我发现这个问题似乎表明我做的是正确的,但没有。

编辑:

我做了更多的挖掘,发现这个讨论表明,由于各种库/dll问题,这在windows上不起作用。这场讨论已经进行了几年,所以也许已经解决了。我可以确认,在linux中执行上述操作确实有效。

我对这个问题的理解是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")
)

最新更新