RPostgreSQL dbConnect 使用连接字符串

RPostgreSQL dbConnect using connection string

使用 RPostgreSQL 包,除了将凭据硬编码到 dbConnect 方法中之外,是否还有其他方法可以连接到远程 PostgreSQL 实例?

据我所知,这是唯一的方法:

dbConnect(drv, host='some.com', port='5432', dbname='some-db', user='usr', password='secrecy')

当然有办法使用连接字符串之类的东西?

编辑:我的意思是引用一些文件(与源代码分开)或包含连接字符串的环境变量。有点像我的主目录中的 .pgpass,或者 heroku 中的 DATABASE_URL。只是一些避免在源代码中使用数据库凭据的方法。

至少在 Windows 上,在交互式会话中,您可以使用 winDialogString 提示用户输入名称和密码。

user <- winDialogString("Enter your username", "")
pwd <- winDialogString("Enter your password", "")
dbConnect(..., user=user, password=pwd)

但是,连接字符串有什么功能调用不能做到的呢?无论哪种方式,您仍然需要在某处硬编码您的凭据。


您还可以将凭据存储在某个文件中,然后使用常用方法(readLinesscanread.table 等)读取它们。

### assuming dbcreds.txt contains the single line "username    password"
cred <- strsplit(readLines("dbcreds.txt"), "[[:blank:]]+")[[1]]
user <- cred[1]
pwd <- cred[2]
dbConnect(..., user=user, pass=pwd)