R中是否有办法以交互方式将命令输入命令行并将其隐藏在屏幕上?我知道有readLine
,但我不知道密码可以隐藏在那里。
假设您要使用ROracle
或RMySQL
连接到数据库,并且不希望将密码存储在脚本中,而是让用户在每次执行查询时都输入密码。
是的,我们周围有类似的question,但我觉得情况已经发生变化,值得再次解决问题。不幸的是tcltk
无法在RStudio(服务器)上运行。
但是我看到R Studio的人们找到了他们的版本控制支持的解决方案。我记得之前的版本,每当我在R Studio中输入时,我都可以看到我的repo密码,但现在看起来似乎已经修复了。我知道这可能是R Studio技术,但是在使用R Studio Server时,凡R用户是否可以访问它?
答案 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 webpage的rstudioapi::askForPassword("Enter your pw")
以及getPass::getPass()
。另外,我还意识到有.rs.api.askForPassword()
等同于最初建议的呼叫 - 至少就我所见。