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