我正在使用RStudio和SVN存储库来控制我的R项目和文件。通常我会在这些脚本的开头从数据库中获取数据。我正在使用这样的RODBC:
channel <- odbcConnect(mydbconn, uid = "", pwd = "")
现在,我不想在这些脚本中存储连接详细信息,用户ID和密码,因为如果这些是硬编码的,那么每个可以访问SVN repo的人都能看到我的密码等。
在这种情况下,最好的方法是什么?运行此脚本时,如何提示这些详细信息(连接,用户ID和密码)(例如,从RStudio或命令行)?
答案 0 :(得分:5)
如果您想提示用户,您可以使用[readline][1]
方法:
connection <- readline("Connection: ")
uid <- readline("User id: ")
cat("Password: ")
system("stty -echo")
password <- readline()
system("stty echo")
请注意避免将密码回显到屏幕的小技巧。
另一种选择是将这些值存储在配置文件中(例如config.local
)并在脚本中插入load(config.local)
。确保该文件未使用svn propset svn:ignore "config.local . "
进行版本控制。或者,您可以将该文件存储在不受svn控制的目录中。