RStudio和SVN:如何提示连接细节以及如何避免硬编码?

时间:2013-11-10 15:52:10

标签: r svn rstudio rodbc

我正在使用RStudio和SVN存储库来控制我的R项目和文件。通常我会在这些脚本的开头从数据库中获取数据。我正在使用这样的RODBC:

channel <- odbcConnect(mydbconn, uid = "", pwd = "")

现在,我不想在这些脚本中存储连接详细信息,用户ID和密码,因为如果这些是硬编码的,那么每个可以访问SVN repo的人都能看到我的密码等。

在这种情况下,最好的方法是什么?运行此脚本时,如何提示这些详细信息(连接,用户ID和密码)(例如,从RStudio或命令行)?

1 个答案:

答案 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控制的目录中。