2016-12-09 11 views
0

通常、いくつかのAPIを使ってMySQLに接続すると(例えば、PythonのLinuxでは)、パスワードをconnect()関数の引数として指定する必要があります。しかし、パスワードをコードに保存したり、プロジェクトリポジトリ内のどこにでも保存したりすることは望ましくありません。共有するためです。また、コマンドライン引数として渡したくないのは、まずプロセスマネージャーに表示されるためです。第2に、スクリプトを開始するたびに入力する必要がないためです。私はまた、小さなスクリプトごとにプログラム固有の設定ファイルを必要としません。PythonでMySQLに接続する:安全な方法ですか?

ローカルの~/my.cnfファイル(Pythonの場合はconfigparserを使用)を解析し、そこからデフォルト設定を取得します。しかし、複数のホストで作業したい場合は、自分自身で構文解析を行い、不便な「グループサフィックス」を使用する必要があります。

私の質問は、ペア(ホスト、ユーザー)のために、さまざまなスクリプト/プログラムが使用できるデフォルトのパスワードを安全に保存する標準的な方法はありますか?

編集:私はduplicateを見つけましたが、コードにパスワードを保存しているので、私はその答えに満足できません。

+3

このような場合は、常に環境変数を使用してください。 [12 Factor apps](https://12factor.net/config)を参照してください。 –

+0

誰もが気にしない別のアカウントを設定することもできます – Navidad20

+0

すべての小さなスクリプトの中で再利用される設定ファイルを作成するだけではどうですか?ローカルのmy.cnfファイルを解析すると、アプリケーションにそのファイルへのアクセス権を与える必要があるため、安全でないように聞こえます。 – eandersson

答えて

0

パスワードなしでユーザーを作成しない限り、パスワードなしでデータベースに接続することはできません。 githubやその他のリポジトリシステム上にあるプロジェクトにはリポジトリに含まれるdistファイルと無視される実際の設定ファイルを持つことが非常に一般的で安全です。このような何か:

config/ 
    - settings.dist.py 
    - settings.py 

し、あなたのシステムがあなたのデータベースの認証情報やアプリケーション固有の設定があるでしょうsettings.pyをロードします。このファイルは無視されるため、リポジトリには存在しません。 リポジトリには、settings.dist.pyしかローカル開発環境用のデフォルトの資格情報しかないので、プロジェクトに参加する人は誰でも自分の資格情報を使用します。ライブでは誰にもアクセスできないようにする必要があります。

git add settings.dist.py 
echo "settings.py" >> .gitignore 
git commit -m 'yout message' 
git push origin branch_name 
関連する問題