web-dev-qa-db-fra.com

Mongo Auth échoue lors de l'utilisation de mongod.conf

Im essayant d'en savoir plus sur mongo et comment le sécuriser. J'arrive à le faire fonctionner en utilisant la ligne de commande mais quand j'essaie d'utiliser un fichier conf, j'obtiens des erreurs sur l'authentification.

J'ai créé un utilisateur administrateur comme:

use admin
var admin = {
    user:"admin",
    pwd:"123456",
    roles:[
        {
            role: "userAdminAnyDatabase",
            db:"admin"
        }
    ]
}
db.createUser(admin)

Démarrer mongod mongod --auth Et s'y connecter en utilisant mongo 127.0.0.1:27017 --authenticationDatabase admin -u admin -p Fonctionne.

Je voudrais passer de la ligne de commande à un fichier conf. Pour cela, je crée le fichier mongod.conf Suivant:

mongod.conf

systemLog:
  destination: file
  path: /Users/me/Web/blog/setup/logs/mongodb/mongo.log
  logAppend: true
storage:
  dbPath: /usr/local/var/mongodb
net:
  port: 27017
  bindIp: 127.0.0.1
security:
  authorization: enabled

J'exécute le démon en invoquant mongod -f mongod.conf. J'essaie de m'authentifier dans mongo en invoquant la commande précédente qui fonctionnait auparavant mais cette fois cela ne fonctionne pas:

mongo 127.0.0.1:27017 --authenticationDatabase admin -u admin -p

MongoDB Shell version: 3.2.5
Enter password: 
connecting to: 127.0.0.1:27017/test
2018-05-11T08:50:53.908+0300 E QUERY    [thread1] Error: Authentication failed. :
DB.prototype._authOrThrow@src/mongo/Shell/db.js:1441:20
@(auth):6:1
@(auth):1:2

exception: login failed

Suis-je en train de taper quelque chose de mal? Je ne vois pas quel est le problème ici. Quelque chose manque dans le fichier conf ou des paramètres incorrects invoquant mongo?

2
kitimenpolku

Selon votre déclaration de journal, il semble que vous commettez une erreur dans votre déclaration d'authentification, comme dans votre déclaration

mongo 127.0.0.1:27017 --authenticationDatabase admin -u admin -p

Selon la documentation de MongoDB BOL ici Avec le contrôle d'accès activé, assurez-vous d'avoir un utilisateur avec le rôle serAdmin ou serAdminAnyDatabase dans la base de données d'administration. Cet utilisateur peut administrer des utilisateurs et des rôles tels que: créer des utilisateurs, accorder ou révoquer des rôles aux utilisateurs et créer ou modifier des rôles douaniers.

Connectez-vous et authentifiez-vous en tant qu'administrateur utilisateur

En utilisant mongo Shell, vous pouvez:

  • Connectez-vous avec l'authentification en transmettant les informations d'identification de l'utilisateur, ou

  • Connectez-vous d'abord sans authentification, puis lancez db.auth ()
    méthode d'authentification.

Par exemple, ce qui suit crée l'utilisateur myUserAdmin dans la base de données admin:

use admin
db.createUser(
  {
    user: "myUserAdmin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

Pour s'authentifier lors de la connexion

Démarrez un mongo Shell avec les options de ligne de commande -u, -p et --authenticationDatabase:

mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"

Pour s'authentifier après la connexion

Connectez le mongo Shell au mongod :

mongo --port 27017

Basculez vers la base de données d'authentification (dans ce cas, admin) et utilisez la méthode db.auth(<username>, <pwd>) pour vous authentifier:

use admin
db.auth("myUserAdmin", "abc123" )

Comme je peux le voir dans votre mention ci-dessous, mongod.conf Fichier le authorization : enable. Cela signifie que votre authentification est activée. Il n'y a donc aucun problème dans votre fichier mongod.conf.

systemLog:
  destination: file
  path: /Users/me/Web/blog/setup/logs/mongodb/mongo.log
  logAppend: true
storage:
  dbPath: /usr/local/var/mongodb
net:
  port: 27017
  bindIp: 127.0.0.1
security:
  authorization: enabled

Pour votre autre référence ici et ici

0