rstudioapi askForPassword 不屏蔽用户名输入

bla*_*eam 5 passwords r rstudio roracle

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

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

目前的解决方案,

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

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

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

想资助一个不屏蔽密码但弹出相同提示的解决方案(如果可能,一行不错的代码......)

Kev*_*eau 9

如果您使用的是 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"
)
Run Code Online (Sandbox Code Playgroud)


小智 7

对于较新版本的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 
Run Code Online (Sandbox Code Playgroud)

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