使用dbConnect
软件包中的DBI
功能连接到数据库时,保护登录信息(如数据库名称,用户名和密码)的最佳实践是什么?
输入登录信息作为字符文本,例如
library(RPostgreSQL)
drv = dbDriver("PostgreSQL")
con = dbConnect(drv, dbname = "<DBNAME>", host = "<HOST>",
port = 5432, user = "<USER>", password = "<PASSWORD>")
以纯文本形式打开凭据。在R脚本中使用登录信息时,如何保护登录信息?
答案 0 :(得分:3)
MainActivity
软件包是在page mentioned by JohnSG中执行第六种解决方案的独立于系统的方式。与其他方法相比,它的优点是绝不会将秘密信息以明文形式存储在磁盘上。
该方法旨在存储密码,但是任何字符串都可以存储在此处。例如,
@Override
public void onFragmentInteraction(Uri uri){
}
,这将提示您输入密码进行存储。然后您的脚本将使用
keyring
除了单个字符串之外,还可以存储其他数据,但这就是我的用法。
它声称在MacOS上使用钥匙串,在Windows上使用凭据存储,在Linux上使用Secret Service API。我不知道它实际上有多安全。对我来说,足够好,不要把它弄清楚。
答案 1 :(得分:2)
如果您不想安装其他软件包,here
列出了许多选项。我更喜欢使用.Renviron,如该帖子所述
# ~/.Renviron
id = "my login name"
pw = "my password"
# script.R
# id and pw are defined in the script by virtue of .Rprofile
call_service(id = Sys.getenv("id"), pw = Sys.getenv("pw"), ...)