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)
但是,连接字符串有什么功能调用不能做到的呢?无论哪种方式,您仍然需要在某处硬编码您的凭据。
您还可以将凭据存储在某个文件中,然后使用常用方法(readLines
、scan
、read.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)
使用 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)
但是,连接字符串有什么功能调用不能做到的呢?无论哪种方式,您仍然需要在某处硬编码您的凭据。
您还可以将凭据存储在某个文件中,然后使用常用方法(readLines
、scan
、read.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)