MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoError :non autorisé à exécuter la commande { find :app_updates, filter :{ key :0.0.1-admins }, limit :1, batchSize :1, singleBatch :true }

Dans votre configuration, vous utilisez une autorisation pour accéder à Mongo

# Security settings.
security:
  authorization: enabled 

Au début, vous devez créer un utilisateur - ouvrir la console mongo (mongo) Démarrer mongod sans configuration

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

se connecter à l'instance à l'aide de la console

mongo --port 27017

dans la console mongo, entrez les commandes suivantes

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

Vous pouvez maintenant accéder à mongo en tant que service avec votre configuration

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

Vous devez donc accorder l'accès à mongo en créant un nouvel utilisateur avec l'autorisation ReadWrite

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

Et essayez de vous connecter en utilisant ces informations d'identificationmongo --port 27017 -u "myAppDbUser" -p "myApp123" --authenticationDatabase "myAppDb"

et utilisez cet utilisateur pour la configuration keystone pour vous connecter à mongo, par exemple

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

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