6

有没有办法在 rstudioapi::askForPassword 弹出窗口中禁用屏蔽,以便用户输入他们的用户名?

我正在构建一个可以与我的团队共享的函数,用于使用 ROracle pacakge 连接到我们的 Oracle 数据库实例

目前的解决方案,

  connection <- dbConnect(
    driver
    , username = rstudioapi::askForPassword(prompt = 'Please enter username: ')
    , password = rstudioapi::askForPassword(prompt = 'Password: ')
    , dbname = 'my.connection.string'
  )

这会弹出以下提示:( 链接中的图片)

这是使用 Rstudio api的 RStudio 数据库文档中描述的解决方案

想资助一个不掩盖密码但弹出相同提示的解决方案(如果可能的话,一行漂亮的代码......)

4

2 回答 2

7

如果您使用的是 RStudio (1.1.67+) 的预览版,则包中有更新的功能可供您使用rstudioapishowPrompt似乎可以完成您所追求的。

connection <- dbConnect(
    driver,
    username = rstudioapi::showPrompt(
      title = "Username", message = "Username", default = ""
    ),
    password = rstudioapi::askForPassword(prompt = "Password"),
    dbname = "my.connection.string"
)
于 2017-09-07T23:43:28.507 回答
4

对于较新版本的rstudioapi::askForPassword我注意到以下内容...

  • 如果您只是username在参数短语中包含该字符串,则该文本不会被屏蔽。
  • 包括password将严格执行屏蔽。

例如:

rstudioapi::askForPassword("Enter username") # <-- UNMASKED
rstudioapi::askForPassword("Enter password") # <-- MASKED

rstudioapi::askForPassword("Enter foobar xyz123 username") # <-- UNMASKED
rstudioapi::askForPassword("Enter foobar xyz123 username password") # <-- MASKED 

当然,我偶然发现了这一点,因为 pw 提示文本框会自动取消对用户名的屏蔽...可能有更多信息:

于 2021-05-11T04:02:01.513 回答