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

mongodbは、認証が有効になっている場合でもゲスト接続を許可します

    はい、基本的には認証なしで接続できますが、ほとんど何もできません。 db.serverBuildInfo()を実行できます

    db.version()

    db.adminCommand({ping:1})

    db.adminCommand({whatsmyuri:1})

    db.adminCommand({features:1})

    たとえば、他のコマンドなどです。

    私にとって少し苦痛に思えるのは、実行できることです:

    for(var i=0;i++<20000;){db.adminCommand({forceerror:1})}
    

    少しのログが生成されます。

    ソースを確認したところ、この動作は一種のバグであることがわかります。シェルスタートアップのソースは次のとおりです: https: //github.com/mongodb/mongo/blob/master/src/mongo/shell/dbshel​​l.cpp

    基本的に、mongoshellのpassword引数とusername引数で指定されたパラメーター値に対して実行される2種類のテストがあります。スタートアップは、-passwordパラメータを指定し、その後にパスワードを書き込んでいないかどうかを確認します。また、dbなしで開始するように指定しておらず、認証を試みるよりも長いユーザー名を指定した場合のチェックがあります(1043行目をチェック)

    if (!nodb && username.size())

    しかし、それだけです。クレデンシャルをまったく指定しないと、認証を試みなくても接続されるようです。初期化フェーズでは、接続するプロセスが認証で実行されているかどうかを確認し、必要に応じて認証を強制する必要があると思います。



    1. マングースの2つのコレクションに参加する方法

    2. MEANスタックファイルのアップロード

    3. 存在する場合は更新する方法、そうでない場合は新しいドキュメントを挿入しますか?

    4. SpringBootMongodb監査エラー