我正在运行一个我想要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上执行上述操作确实有效。
答案 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")
)