Auth do MongoDB, pode ser autenticado no shell, mas não através da linha de comando

4

Eu tenho um aplicativo que se conecta a um banco de dados do MongoDB chamado discussões. Eu criei um usuário

shell Mongo:

> use discussions
switched to db discussions
> db.auth("discussions","XXXXXXXXX")
1
> show users
{
        "_id" : "discussions.discussions",
        "user" : "discussions",
        "db" : "discussions",
        "roles" : [
                {
                        "role" : "dbOwner",
                        "db" : "discussions"
                }
        ]
}

Então, isso é para confirmar que eu tenho uma conta no banco de dados e é um dbOwner. De acordo com os documentos, ele possui privilégios READ, WRITE, etc.

O arquivo de configuração tem a propriedade "auth = true" ativada e o serviço foi devolvido desde a alteração, mais de uma vez.

No entanto, o problema é que quando eu tento conectar-me ao banco de dados de fora do shell eu sempre recebo o erro:

mongo  discussions -u 'discussions' -p 'XXXXXXXXX'
MongoDB shell version: 2.6.3
connecting to: discussion
2014-08-05T01:00:39.026+0400 Error: 18 { ok: 0.0, errmsg: "auth failed", code: 18 } at src/mongo/shell/db.js:1210
exception: login failed

Eu já vi perguntas no Stackoverflow sobre isso e todas elas tinham algo a ver com as aspas usadas em torno do nome de usuário e senha ... mas alterar a aspa simples para uma aspa dupla não produziu um resultado melhor.

    
por monksy 04.08.2014 / 23:02

2 respostas

2

O problema foi resolvido removendo quaisquer símbolos. Parece que, apesar das aspas [simples ou duplas], a senha de entrada seria inválida.

    
por 05.08.2014 / 06:10
5

Talvez eu esteja errado, mas a forma correta é assim:

mongo --port 27017 -u gerente -p 12345678 --authenticationDatabase admin

Você pode ler sobre isso na documentação do mongo:

link

    
por 04.08.2014 / 23:12