在R或R Studio(服务器)中以交互方式输入密码?

时间:2013-01-30 09:00:33

标签: r passwords rstudio rstudio-server

R中是否有办法以交互方式将命令输入命令行并将其隐藏在屏幕上?我知道有readLine,但我不知道密码可以隐藏在那里。 假设您要使用ROracleRMySQL连接到数据库,并且不希望将密码存储在脚本中,而是让用户在每次执行查询时都输入密码。

是的,我们周围有类似的question,但我觉得情况已经发生变化,值得再次解决问题。不幸的是tcltk无法在RStudio(服务器)上运行。

但是我看到R Studio的人们找到了他们的版本控制支持的解决方案。我记得之前的版本,每当我在R Studio中输入时,我都可以看到我的repo密码,但现在看起来似乎已经修复了。我知道这可能是R Studio技术,但是在使用R Studio Server时,凡R用户是否可以访问它?

1 个答案:

答案 0 :(得分:21)

实际上R Studio(服务器)提供了一个很好的解决方案。您可以使用.rs功能访问它。它们提供了一个没有文档的密码功能,虽然没有保证支持永远和一天,但是非常好:

.rs.askForPassword("foo")

你可以在这里找到来自RStudio的Josh的原始提示: http://support.rstudio.org/help/discussions/questions/1448-password-interaction-with-dbs-on-rstudio-server

编辑: 截至2015年,还有另一个以交互方式输入密码的好方案。您可以使用shiny来创建一个带有密码表单的基于Web的窗口。我与@hadley的讨论显示了一个示例代码段:https://github.com/rstats-db/RPostgres/issues/26

编辑: 截至2017年,还有另一个更新。 @ m-dz向我们指出: 来自R Studio Support webpagerstudioapi::askForPassword("Enter your pw")以及getPass::getPass()。另外,我还意识到有.rs.api.askForPassword()等同于最初建议的呼叫 - 至少就我所见。