Ich habe begonnen, MongoDB mit Authentifizierung zu verwenden. Gemäß der Dokumentation habe ich die localhost-Ausnahme verwendet, um einen Admin-Benutzer mit der Einzelrolle userAdminAnyDatabase zu erstellen . Das ging alles gut. Wenn ich den „Mongo“-Client ausführe und gegen den Administrator autorisiere Datenbank nach der Verwendung In dieser Datenbank bekomme ich die Nummer 1 zeigt an, dass die Autorisierung erfolgreich war. Jeder Befehl, den ich auszuführen versuche, führt jedoch zu einem „nicht autorisierten“ Fehler, selbst wenn ich versuche, die Sammlungen in der Admin-Datenbank anzuzeigen, für die ich gerade autorisiert habe.
Kann mir jemand sagen warum das so ist und wie ich es beheben kann? Derzeit laufe ich ohne Authentifizierung, bis ich das behoben bekomme.
Akzeptierte Antwort:
Die userAdminAnyDatabase
Rolle (und die userAdmin
Rolle, von der es eine Erweiterung ist) gibt Ihrem Benutzer einfach die Berechtigung zum Lesen und Schreiben in system.users
Sammlung zur Verwaltung der Benutzer einer Datenbank. Es erlaubt dem Benutzer nicht, die tatsächlichen Sammlungen der Datenbank zu lesen oder zu schreiben. Dafür müssen Sie den read
erteilen oder readWrite
Rollen.
Siehe Benutzerberechtigungsrollen in MongoDB und Hinzufügen eines Benutzers zu einer Datenbank.