ディスカッションと呼ばれる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でこれについての質問を見たことがありますが、ユーザー名とパスワードの前後で使用されている引用符と関係があります...しかし、単一引用符を二重引用符に変更しても、良い結果は得られませんでした。
この問題は、シンボルを削除することで解決しました。引用符[single or double]にもかかわらず、入力パスワードが無効になるようです。
多分私は間違っていますが、正しい形式は次のとおりです:
mongo --port 27017 -u manager -p 12345678 --authenticationDatabase管理者
Mongoのドキュメントでこれについて読むことができます:
http://docs.mongodb.org/manual/tutorial/add-user-to-database/