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

MongoError:nicht berechtigt, Befehl auszuführen { find:app_updates, filter:{ key:0.0.1-admins }, limit:1, batchSize:1, singleBatch:true }

In Ihrer Konfiguration verwenden Sie die Autorisierung für den Zugriff auf Mongo

# Security settings.
security:
  authorization: enabled 

Zuerst müssen Sie einen Benutzer erstellen - öffnen Sie die Mongo-Konsole (Mongo) Starten Sie Mongod ohne Konfiguration

mongod --port 27017 --dbpath /data/db1

Verbinden Sie sich mit der Instanz über die Konsole

mongo --port 27017

Geben Sie in der Mongo-Konsole die nächsten Befehle ein

use admin
db.createUser(
  {
    user: "superAdmin",
    pwd: "admin123",
    roles: [ { role: "root", db: "admin" } ]
  })

Jetzt können Sie mit Ihrer Konfiguration als Dienst auf Mongo zugreifen

mongo --port 27017 -u "superAdmin" -p "admin123" --authenticationDatabase "admin"

Daher müssen Sie Mongo Zugriff gewähren, indem Sie einen neuen Benutzer mit der Berechtigung „Lesen/Schreiben“ erstellen

use myAppDb #its name of your Database
db.createUser(
  {
   user: "myAppDbUser", #desired username
   pwd: "myApp123", #desired password
   roles: [ "readWrite"]
  })

Und versuchen Sie, eine Verbindung mit diesen Anmeldeinformationen herzustellenmongo --port 27017 -u "myAppDbUser" -p "myApp123" --authenticationDatabase "myAppDb"

und verwenden Sie diesen Benutzer für die Keystone-Konfiguration, um beispielsweise eine Verbindung zu Mongo herzustellen

mongodb://myAppDbUser:[email protected]:27017/myAppDb

(über https://medium.com/@raj_adroit /mongodb-enable-authentication-enable-access-control-e8a75a26d332 )