web-dev-qa-db-ja.com

MongoDB Authはシェルで認証できますが、コマンドラインからは認証できません

ディスカッションと呼ばれるMongoDBデータベースに接続するアプリケーションがあります。ユーザーを作成しました

モンゴシェル:

> use discussions
switched to db discussions
> db.auth("discussions","XXXXXXXXX")
1
> show users
{
        "_id" : "discussions.discussions",
        "user" : "discussions",
        "db" : "discussions",
        "roles" : [
                {
                        "role" : "dbOwner",
                        "db" : "discussions"
                }
        ]
}

つまり、データベースに1つのアカウントがあり、それがdbOwnerであることを確認します。ドキュメントによると、READ、WRITEなどの権限があります。

構成ファイルでプロパティ「auth = true」が有効になっており、サービスが変更以降、何度かバウンスされています。

ただし、問題は、シェルの外部からデータベースに接続しようとすると、常にエラーが発生することです。

mongo  discussions -u 'discussions' -p 'XXXXXXXXX'
MongoDB Shell version: 2.6.3
connecting to: discussion
2014-08-05T01:00:39.026+0400 Error: 18 { ok: 0.0, errmsg: "auth failed", code: 18 } at src/mongo/Shell/db.js:1210
exception: login failed

Stackoverflowでこれについての質問を見たことがありますが、ユーザー名とパスワードの前後で使用されている引用符と関係があります...しかし、単一引用符を二重引用符に変更しても、良い結果は得られませんでした。

4
monksy

この問題は、シンボルを削除することで解決しました。引用符[single or double]にもかかわらず、入力パスワードが無効になるようです。

2
monksy

多分私は間違っていますが、正しい形式は次のとおりです:

mongo --port 27017 -u manager -p 12345678 --authenticationDatabase管理者

Mongoのドキュメントでこれについて読むことができます:

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

5
Antonio Serrano