gpt4 book ai didi

r - 如何让 rapache/brew 安全地连接到 MySQL 数据库?

转载 作者:行者123 更新时间:2023-12-04 12:49:19 25 4
gpt4 key购买 nike

我正在使用 rapache 和 brew 开发一个 Web 应用程序。在 R 代码中,我想使用 RMySQL 包来查询 MySQL 数据库,但我正在质疑从 R 脚本中访问数据库登录详细信息的最佳方式。

关注 some suggestions for a similar problem with PHP ,一种想法是在交互式 session 中执行以下操作,将连接详细信息保存到 /var/www 之外的文件中。 :

con <- dbConnect(MySQL(), dbname = "mydb", user = "myuser", pass = "mypass")
save(con, file = "/home/myuser/sqlconnect.rda")

然后在 rapache/brew 运行的脚本中,加载 .rda文件:
<%
load("/home/myuser/sqlconnect.rda")
query <- "MY QUERY"
result <- dbGetQuery(con, query)
%>

我还没有尝试过这种方法。我什至不确定我的 sqlconnect.rda文件将包含它需要连接的所有信息。

是否有更安全的方式来设置 dbConnect()陈述?

更新

保存 dbConnect()输出到文件不起作用,因为连接超时。然而, source正在 .R我的用户目录中包含的文件
library(RMySQL)
con <- dbConnect(MySQL(), dbname = "mydb", user = "myuser", pass = "mypass")

确实有效。

但是,我不知道这种方法有多安全。

最佳答案

尽管我不明白为什么您的建议与在 R 脚本文件中使用用户名/密码相比会提高安全性,但您可以存储 dbConnect 的参数。功能。例子:

con.details <- list("MySQL", dbname = "mydb", user = "myuser", pass = "mypass")
save(con.details, file='/nonpub/con.details')

并在您的 brew 文件中使用这些参数:
load('/nonpub/con.details')
con <- do.call(dbConnect, con.details)

当您使用 rApache 时,加载 con.details每次运行都没有任何意义,我宁愿将该行放在 REvalOnStartup 中,这也可以为您节省这个 save/load问题 :)

所以我建议添加 library(RMySQL); con.details <- list("MySQL", dbname = "mydb", user = "myuser", pass = "mypass") rApache 启动并在 brew 脚本中使用该参数列表。

关于r - 如何让 rapache/brew 安全地连接到 MySQL 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7303004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com