sql >> データベース >  >> NoSQL >> MongoDB

データベースのクレデンシャルを正しく非表示にする

    ...データベース接続ファイルと、資格情報がある別の「保護された」ファイルがあり、このファイルは.gitignoreに含まれています。インポートしてデータに到達します。

    それを行う正しい方法は、環境変数を使用することです。

    環境変数を使用する

    環境変数は環境に設定されます 、つまり、ローカル開発マシンまたはリモート本番サーバー。次に、アプリ内で環境変数を読み取り、それらを適切に使用します。

    (少なくとも)通常このように行われる理由はいくつかあります:

    • クレデンシャルは、リポジトリの内容を表示しているユーザーが読み取ることができるファイルに存在しません。リポジトリのクローンを作成する人は、あなたのを知る必要はありません。 データベースのクレデンシャル。
    • クレデンシャルは環境によって異なる可能性があります。ローカル開発マシンで別のデータベースを使用し、リモート本番サーバーで別のデータベースを使用している可能性があります。

    環境変数を設定する方法は次のとおりです(これはLinux用であり、他のOSでは異なる場合があります):

    $ export MONGO_DB_USERNAME=foo
    $ export MONGO_DB_PASSWORD=bar
    

    Node.js内でそれらを読み取る方法は次のとおりです:

    console.log(process.env.MONGO_DB_USERNAME) // logs 'foo'
    console.log(process.env.MONGO_DB_PASSWORD) // logs 'bar'
    

    または起動時にプロセスに変数を渡します

    または、次のようにプロセスを開始するときに変数を渡すこともできます。

    $ MONGO_DB_USERNAME=foo MONGO_DB_PASSWORD=bar node app.js
    

    ただし、npm startスクリプトを使用してプロセスを開始している可能性が高いため、これは一般的に推奨されていません。 package.json以降 、ここでnpm start コマンドが定義され、常にリポジトリにコミットされ、資格情報を非表示にするという目的全体が無効になります。



    1. マングース接続

    2. MongoDBのインデックス

    3. MongoDB $ cond

    4. 運用データベース管理