MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Welche MongoDB-Benutzerrechte benötige ich, um einen Benutzer zu einer neuen/anderen Mongo-Datenbank hinzuzufügen?

Der Fehler war, dass ich eine userAdminAnyDatabase verwendet habe Benutzer, der NICHT war im Adminbereich Datenbank (siehe diesen Hinweis). Also gibt es MUSS eine Datenbank namens admin sein auf Ihrem Server! Wie die Dokumentation für die "AnyDatabase"-Privilegien sagt:

Wenn Sie eine dieser Rollen zu einem Benutzerberechtigungsdokument außerhalb der Admin-Datenbank hinzufügen, hat die Berechtigung keine Auswirkung.

Sie müssen also:

  • Fügen Sie eine userAdminAnyDatabase hinzu an den admin db

    $ mongo admin
    > db.createUser({ user: "myadmin", pwd: "1234", roles: ["userAdminAnyDatabase"] })
    
  • Aktivieren Sie die Authentifizierung

    auth = true
    setParameter = enableLocalhostAuthBypass=0
    
  • Verbinden Sie sich mit dem neuen myadmin Benutzer zu einer beliebigen Datenbank hinzufügen und weitere Benutzer hinzufügen:

    $ mongo another -u myadmin -p 1234
    > db.createUser({ user: "user", pwd: "1234", roles: ["readWrite"] })
    

    oder

    > use another
    > db.createUser({ user: "user", pwd: "1234", roles: ["readWrite"] })