もう1つの答えはCan't connect to MongoDB with authentication enabledです。私はそれを試しましたが、まだできます;私の設定が間違っているのを理解しません。認証でmongodbに接続できません。
私は、インストール後にサービスまずとしてインストールのUbuntu 14.04、モンゴ3.4.1(最新)を使用
私はちょうどそのドキュメントhereのように、このコマンドを実行します。それはSuccessfully added user
を返し
mongo --port 27017
use admin
db.createUser({user: "adminUser",pwd: "abc123",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})
。接続するsudo service mongod restart
試し:それから私はのmongodサーバーを/etc/mongod.conf
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
net:
port: 27017
bindIp: 127.0.0.1
security:
authorization: enabled
保存を再設定し、再起動、私はコマンドuse testDatabase
で別のデータベースに変更した場合、その後、成功しているmongo -u "adminUser" -p "abc123" --authenticationDatabase "admin"
、Iそれに何らかの操作を行うことはできません。
use testDatabase
db.createCollection("people")
結果:
{
"ok" : 0,
"errmsg" : "not authorized on testDatabase to execute command { create: \"people\" }",
"code" : 13,
"codeName" : "Unauthorized"
}
ここでは、userAdminAnyDatabase
役割はもう動作しないか、私の設定に何か問題があると思われ、私のデータベース内に登録されたユーザー
use admin
db.system.users.find()
{ "_id" : "admin.adminUser",
"user" : "adminUser",
"db" : "admin",
"credentials" : { "SCRAM-SHA-1" : {....} },
"roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ]
}
のですか?
これは機能しますが、別のデータベース用に別のユーザーを作成する必要がありますか? – DennyHiu
ユースケースによって異なります。どちらにしてもかまいません。詳細はこちら。 https://docs.mongodb.com/manual/reference/built-in-roles/およびhttps://docs.mongodb.com/manual/tutorial/manage-users-and-roles/ – Veeram