Rapache/BrewがMySQLデータベースに安全に接続できるようにするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/7303004

  •  22-10-2019
  •  | 
  •  

質問

RapacheとBrewを使用してWebアプリケーションを開発しています。 Rコード内で、RMYSQLパッケージを使用してMySQLデータベースを照会したいのですが、Rスクリプト内からデータベースのログイン詳細にアクセスする最良の方法に疑問を呈しています。

続く PHPに関する同様の問題に関するいくつかの提案, 、1つの考えは、インタラクティブセッションで以下を行うことでした。 /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() 接続がタイムアウトしているため、ファイルへの出力は機能しません。でも、 sourceing a .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')

醸造ファイルでこれらのパラメーターを使用してください。

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") StartupをRapacheに、Brew Scriptsでそのパラメーターリストを使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top