パッケージdbConnect
内の機能を使用してデータベースに接続する場合DBI
、データベース名、ユーザー名、パスワードなどのログオン情報を保護するためのベストプラクティスは何ですか?
次のような文字テキストとしてログオン情報を入力する
library(RPostgreSQL)
drv = dbDriver("PostgreSQL")
con = dbConnect(drv, dbname = "<DBNAME>", host = "<HOST>",
port = 5432, user = "<USER>", password = "<PASSWORD>")
資格情報を開いたまま、プレーンテキストのままにします。Rスクリプトで使用する場合、ログオン情報をどのように保護できますか?
このkeyring
パッケージは、JohnSGが言及したページの6番目のソリューションを実行するためのシステムに依存しない方法です。秘密情報がディスクの平文に保存されないという他の方法に比べて利点があります。
この方法はパスワードを保存するように設計されていますが、任意の文字列をそこに保存できます。例えば、
library(keyring)
key_set("DBPassword", "ichbinallen")
これにより、保存するパスワードの入力を求められます。次に、スクリプトは
con = dbConnect(drv, dbname = "<DBNAME>", host = "<HOST>",
port = 5432, user = "<USER>",
password = key_get("DBPassword", "ichbinallen"))
単一の文字列以外のデータを保存することも可能ですが、それが私が使用した方法です。
MacOSではキーチェーン、Windowsでは資格情報ストア、LinuxではシークレットサービスAPIを使用すると主張しています。それが実際にどれほど安全かはわかりません。私にとっては、それを明確にしないことで十分です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加