109

これらの指示を使用して、mongo の管理者ユーザーを作成しました。

http://docs.mongodb.org/manual/tutorial/add-user-administrator/

mongo クライアントからは、認証できるように見えます。

> use admin
switched to db admin
> db.auth('admin','SECRETPASSWORD');
1
>

しかし、それ以外の方法で接続することはできません。例えば:

mongo -u admin -p SECRETPASSWORD

エラーが発生します:

JavaScript execution failed: Error: 18 { code: 18, ok: 0.0, errmsg: "auth fails" } at src/mongo/shell/db.js:L228

auth = true入っていetc/mongod.confます。

私は何が欠けていますか?

4

13 に答える 13

88

このエラーも受け取りました。必要なのは、ユーザー認証データが保存されているデータベースを指定することでした。

mongo -u admin -p SECRETPASSWORD --authenticationDatabase 管理者

2017 年 11 月 18 日の更新:

mongo admin -u admin -p

より良い解決策です。Mongo はパスワードの入力を求めるプロンプトを表示します。このようにして、平文のパスワードをシェルの履歴に入れることはありません。これはひどいセキュリティ慣行です。

于 2014-04-21T18:33:12.403 に答える
35

これは明らかなように思えるかもしれませんが、機能する前に u/n と p/w を一重引用符で囲む必要もありました

mongo admin -u 'ユーザー' -p 'パスワード'

于 2014-05-06T19:24:46.273 に答える
22

MongoDB 3.0 では、複数の認証メカニズムがサポートされるようになりました。

  1. MongoDB チャレンジ アンド レスポンス (SCRAM-SHA-1) - 3.0 のデフォルト
  2. MongoDB チャレンジ アンド レスポンス (MONGODB-CR) - 以前のデフォルト (< 3.0)

新しいユーザーが作成された新しい 3.0 データベースで開始した場合、それらは SCRAM-SHA-1 を使用して作成されます。

したがって、その認証が可能なドライバーが必要になります。

http://docs.mongodb.org/manual/release-notes/3.0-scram/#considerations-scram-sha-1-drivers

既存のユーザー データを使用して 2.x からデータベースをアップグレードした場合、それらは引き続き MONGODB-CR を使用するため、ユーザー認証データベースをアップグレードする必要があります。

http://docs.mongodb.org/manual/release-notes/3.0-scram/#upgrade-mongodb-cr-to-scram

現在、SCRAM-SHA-1 で作成されたユーザーを使用して MongoDB 3.0 に接続するには、(コマンド ライン mongo クライアントを介して) 認証データベースを指定する必要があり、ドライバーを使用する場合は他のメカニズムを使用する必要があります。

$> mongo -u ユーザー -p パスワード --authenticationDatabase 管理者

この場合、デフォルトでもある「admin」データベースが認証に使用されます。

于 2015-10-07T16:54:47.683 に答える
2

mongo シェルにログインする適切な方法は次のとおりです。

mongo localhost:27017 -u 'uuuu' -p '>xxxxxx' --authenticationDatabase dbname

于 2017-06-06T12:24:33.397 に答える