Ich habe einen Benutzer in der Admin-Datenbank erstellt, der die Rolle "userAdminAnyDatabase" in der Admin-Datenbank hat. Die Zugriffsebene funktioniert gut beim Versuch, die Datenbanken zur Liste (mit der show databases Befehl), sondern führt den folgenden Fehler, wenn ich die zeigen Sammlungen Befehl auf einer anderen Datenbank als Admin ausführen. Hier ist der FehlerEinen MongoDB-Benutzer mit Zugriff auf zusätzliche Datenbanken versorgen
Error: listCollections failed: { "ok" : 0, "errmsg" : "not authorized on xxxx to execute command { listCollections: 1.0, filter: {} }", "code" : 13, "codeName" : "Unauthorized"
Ich habe versucht, den Benutzer zu aktualisieren, Zugriff zu ermöglichen mit dem folgenden Befehl:
db.updateUser("xyz",{pwd:"abcd",roles:[{role:"userAdminAnyDatabase",db:"admin"},{role:"userAdminAnyDatabase",db:"employee"}]})
ich die folgende Fehlermeldung erhalten:
Error: couldn't add user: No role named [email protected]
Muss ich hinzufügen die Rollen speziell in jeder Datenbank, damit dies funktioniert?
Ich habe das funktioniert. Was ich aus Ihrer obigen Erklärung verstehe und unsere Lösung ist, dass die Rolle userAdminAnyDatabase nur in der Admin-Datenbank vorhanden ist, aber diesem Benutzer das Recht gibt, Benutzer in jeder Datenbank zu verwalten. Wir müssen noch Benutzer in der Datenbank anlegen, in die wir schreiben wollen. Das Konzept, alle Benutzer in einer zentralen Datenbank zu haben, denen Lese-/Schreibzugriff auf andere Datenbanken gewährt wird, scheint in Mongo nicht vorhanden zu sein. – kl27driver