2016-12-02 9 views
0

私はDBとしてmongo DBを使用するNode JSプログラムを持っています。今、誰もが問題なくmongoシェルにアクセスできます。Mongodb認証シェル/コンソール

これはどのような意味ですか?私はmongoシェルを他の誰かから離しておく必要があります。つまり、シェルを使用する前に認証する必要があります。その理由は、データベース内のテーブルを削除したり、コンソールからドキュメントを挿入/変更したりしたくないという理由です。

これを行う方法はありますか?私はhttps://docs.mongodb.com/manual/security/を見ましたが、私はこれを私のノードJsプログラム(パスワードを秘密にしておく)にどのように実装するのか分かりません。

ご協力いただければ幸いです。おかげ

答えて

2

いくつかのソリューション:

  • のみ必要なIPアドレスに自分のDBへのアクセスを制限します。あなたのアプリとデータベースが同じマシン上にある場合は、127.0.0.1だけ+あなたのPCかもしれないので、GUIでクエリを実行することができます。

  • 強いパスワードを使用してthis linkのように認証を実施します。 あなたのノードプログラムでパスワードを「秘密」にしておくことは、「ハードコードされていない」と理解して、env変数にして実行時にノードに渡すか、リポジトリに存在しないファイル.gitignoreも動作します)。有効なユーザ/パスワードで

は、ここにノードを使用してMongoDBをして認証する方法は次のとおりです。

MongoDBのアドレスは7つのコンポーネントがあります。すべて一緒のような文字列を与える

protocol:"mongodb://", 
    host:"localhost", 
    user: "user", 
    password : "password", 
    options: "?authMechanism=MONGODB-CR", 
    port:"27017", 
    db:"db_name" 

を:

mongodb://user:[email protected]:27017/db_name?authMechanism=MONGODB-CR

これで十分ですネイティブMongoドライバを使用して接続するノード。

そしてシェルで認証する:

使用DB_NAME

db.auth( "ユーザー"、 "パスワード")

または、直接接続上:

mongo -u "user" -p "password" --authenticationDatabase "db_name"

関連する問題