11

私たちは MongoDB ユーザーベースの認証を使用しています。コマンドをすばやく実行して、データベースにユーザーが既に作成されているかどうかを確認して、パペットがユーザーの作成を繰り返し試行しないようにしたいと考えています。

レプリカ セットが初期化されているかどうかを確認する方法は次のとおりです。

/usr/bin/mongo --host ${members[0]} --quiet --eval 'rs.status().ok' | grep -q 1

認証で同様のトリックは可能ですか? http://www.mongodb.org/display/DOCS/dbshel ​​l+%28mongo%29+Reference のドキュメントを確認しましたが、それを行う方法がわかりませんか?

4

5 に答える 5

19

はい、特定の DB でdb.system.users.find({user:'login'}).count()、ユーザーが存在しない場合に 0 を返すを使用できます。

于 2012-10-12T10:04:16.837 に答える
3

このメソッドは非推奨になっているように感じます。機能するには次のコマンドが必要でした。

db.getUsers({filter: {'user': 'login'}})
于 2019-09-06T09:58:11.630 に答える
2

今日、コマンドのオプションを試し-uてみたところ、うまくいきました:-pmongo

mongo --port 27037 --quiet -u superuser -p pwd 
    --eval "db.system.users.find({user:'user3'}).count()" admin

最後の「admin」引数に注意してください。これは、認証するデータベースの名前です。

于 2014-10-22T07:44:39.277 に答える