MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoError:não autorizado a executar o comando { find:app_updates, filter:{ key:0.0.1-admins }, limit:1, batchSize:1, singleBatch:true }


Na sua configuração você está usando autorização para acessar o Mongo
# Security settings.
security:
  authorization: enabled 

Primeiro você precisa criar usuário - console mongo aberto (mongo)Iniciar mongod sem configuração
mongod --port 27017 --dbpath /data/db1

conectar-se à instância usando o console
mongo --port 27017

no console do mongo, digite os próximos comandos
use admin
db.createUser(
  {
    user: "superAdmin",
    pwd: "admin123",
    roles: [ { role: "root", db: "admin" } ]
  })

Agora você pode acessar o mongo usando como serviço com sua configuração
mongo --port 27017 -u "superAdmin" -p "admin123" --authenticationDatabase "admin"

Então você precisa conceder acesso ao mongo criando um novo usuário com permissão ReadWrite
use myAppDb #its name of your Database
db.createUser(
  {
   user: "myAppDbUser", #desired username
   pwd: "myApp123", #desired password
   roles: [ "readWrite"]
  })

E tente se conectar usando este credenciaismongo --port 27017 -u "myAppDbUser" -p "myApp123" --authenticationDatabase "myAppDb"

e use este usuário para configuração de keystone para se conectar ao mongo, por exemplo
mongodb://myAppDbUser:[email protected]:27017/myAppDb

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