R Shiny想隐藏全球.R密码



我正在R中的Shiny中编写一个应用程序。R如下所述,用于连接PostgresSQL。

library(shiny)
library(DBI)
library(RPostgres)
library(RPostgreSQL)
library(pool)
pool <- dbPool(
drv = RPostgreSQL::PostgreSQL(max.con=10000),
dbname = "postgres",
host = "shiny.com...",
user = "postgres",
password = "passward",
idleTimeout = 3600000
)

我可以毫无问题地连接,但我不愿意直接在全局中写入密码。R有没有一个好的方法可以隐藏密码或将其写在其他地方读取?谢谢

有几种方法可以做到这一点。我想你想要一个";"自动化";解决方案(即每次启动应用程序时无需提供密钥(,因此您可能需要查看此SO帖子:在闪亮的应用程序部署中隐藏密钥它基本上涉及一个存储凭据的隐藏文件。

我建议将您的密码存储到.Renviron。您可以使用usethis::edit_r_environ()轻松访问.Rnviron。例如,将其存储为YOURPASS="密码",并在代码中这样称呼它:

pool <- dbPool(
drv = RPostgreSQL::PostgreSQL(max.con=10000),
dbname = "postgres",
host = "shiny.com...",
user = "postgres",
password = Sys.getenv('YOURPASS')),
idleTimeout = 3600000
)

最新更新