para - Ingrese las contraseñas de forma interactiva en R o R Studio(Servidor)?
lastpass chrome (1)
¿Hay alguna forma en R para ingresar contraseñas de manera interactiva en la línea de comando y esconderlas de la pantalla? Sé que hay una línea de readLine
, pero no sé que las contraseñas pueden ocultarse allí. Suponga que desea conectarse a una base de datos utilizando ROracle
o RMySQL
y no desea almacenar la contraseña en un script, sino que haga que el usuario la ingrese cada vez que se ejecuta una consulta.
Sí, tuvimos una pregunta similar por aquí, pero creo que la situación ha cambiado y vale la pena volver a abordar el problema. Desafortunadamente tcltk
no funcionará en RStudio (Servidor).
Sin embargo, he visto que la gente de R Studio encontró una solución para su soporte de control de versiones. Recuerdo versiones anteriores en las que podía ver mi contraseña de repo cada vez que la ingresé en R Studio, pero ahora parece que está arreglada. Sé que es probable que sea la técnica de R Studio, pero ¿hay alguna forma en que los usuarios de R mortal puedan acceder a ella cuando trabajan con R Studio Server?
En realidad, R Studio (Server) proporciona una buena solución. Puede acceder utilizando .rs
funciones .rs
. Proporcionan una función de contraseña no documentada que es muy buena, aunque no hay soporte garantizado para siempre y por día:
.rs.askForPassword("foo")
Puede encontrar la pista original de Josh de RStudio aquí: http://support.rstudio.org/help/discussions/questions/1448-password-interaction-with-dbs-on-rstudio-server
EDITAR: A partir de 2015, hay otra buena solución para ingresar la contraseña de forma interactiva. Podría usar shiny
para tener una pequeña ventana basada en web con un formulario de contraseña. Esta discusión que tuve con @hadley muestra un fragmento de ejemplo: https://github.com/rstats-db/RPostgres/issues/26
EDITAR: A partir de 2017 hay otra actualización de esto. @ m-dz nos señaló esto: rstudioapi::askForPassword("Enter your pw")
así como getPass::getPass()
de la página web de R Studio Support . Además, también me di cuenta de que hay .rs.api.askForPassword()
que es equivalente a la llamada sugerida inicialmente, al menos hasta donde he visto.