Eine MongoDB "userAdminAnyDatabase" Benutzer nicht-admin-Benutzer in "jede Datenbank". Warum?
Dies ist ein userAdmin
vs. userAdminAnyDatabase
Frage.
In der system.users
ich habe die folgenden Benutzer (Passwort 1234
für beide):
> db.system.users.find()
{ "_id" : ObjectId("52a976cb7851682aa44d6d4d"), "user" : "admin_one", "pwd" : "884f516cf308a4c6a75bbc5a0a00807b", "roles" : [ "userAdmin", "dbAdmin" ] }
{ "_id" : ObjectId("52a97c697851682aa44d6d4f"), "user" : "admin_two", "pwd" : "26e7bb644e5919461cd6ba7403dc6906", "roles" : [ "userAdminAnyDatabase", "dbAdminAnyDatabase" ] }
Verbindet sich mit einem falschen Nutzer:
$ mongo mono -u admin -p 1234
connecting to: mono
Thu Dec 12 10:09:00.733 Error: 18 { code: 18, ok: 0.0, errmsg: "auth fails" } at src/mongo/shell/db.js:228
ist OK.
Verbindung mit dem db-admin:
$ mongo mono -u admin_one -p 1234
connecting to: mono
> db.system.users.find()
{ "_id" : ObjectId("52a976cb7851682aa44d6d4d"), "user" : "admin_one", "pwd" : "884f516cf308a4c6a75bbc5a0a00807b", "roles" : [ "userAdmin", "dbAdmin" ] }
{ "_id" : ObjectId("52a97c697851682aa44d6d4f"), "user" : "admin_two", "pwd" : "26e7bb644e5919461cd6ba7403dc6906", "roles" : [ "userAdminAnyDatabase", "dbAdminAnyDatabase" ] }
ist auch OK.
Nun, die Verbindung mit der "AnyDatabase" admin bekomme ich eine Fehlermeldung:
$ mongo mono -u admin_two -p 1234
connecting to: mono
> db.system.users.find()
error: { "$err" : "not authorized for query on mono.system.users", "code" : 16550 }
Warum?
InformationsquelleAutor Gabriel Petrovay | 2013-12-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint es, dass man versucht, eine Zuordnung der
userAdminAnyDatabase
Rolle auf dermono
Datenbank, nicht die der {{admin}} - Datenbank. Die "anyDatabase" die Rollen sind nur für Nutzer verfügbar, die sich bei deradmin
Datenbank.Sehen die Dokumentation der anyDatabase Rollen für weitere Informationen.
InformationsquelleAutor tychoish
Lief ich auf ähnliche Probleme nach dem erstellen des admin-Benutzers in mongodb.
Möchten Sie vielleicht zu prüfen:
diese
helfen kann
Benutzer Rollen erläutert: http://docs.mongodb.org/manual/reference/method/db.grantRolesToUser/#db.grantRolesToUser
userAdminAnyDatabase und userAdmin nicht explizit autorisieren eines Benutzers für alle Berechtigungen über die Benutzerverwaltung.
Sie müssen auch hinzufügen, die "clusterAdmin" Rolle für die Liste Datenbanken-Befehl: http://docs.mongodb.org/manual/reference/user-privileges/#clusterAdmin
Wenn Sie möchten, dass Sie Benutzer zum Lesen/schreiben aus der Datenbank und Sammlungen, Sie müssen zum hinzufügen einer weiteren Rolle, die "readWrite"
Darüber hinaus möchten Sie vielleicht zu prüfen, Ihre mongod-terminal zu sehen, welche Fehler Tauchen in den Rücken.
Glück,
InformationsquelleAutor one_of_many