web-dev-qa-db-fra.com

MongoDB quels sont l'utilisateur et le mot de passe par défaut?

J'utilise la même chaîne de connexion sur local et production. Lorsque la chaîne de connexion est mongodb://localhost/mydb

Quel est le nom d'utilisateur et mot de passe? Est-il sécurisé de le garder de cette façon?

61

Par défaut, mongodb n'a pas de contrôle d'accès activé, il n'y a donc pas d'utilisateur ou de mot de passe par défaut.

Pour activer le contrôle d'accès, utilisez l'option de ligne de commande --auth ou le fichier de configuration security.authorization.

Vous pouvez utiliser la procédure suivante ou vous référer à Activation de l'authentification dans la documentation MongoDB.

Procédure

  1. Démarrez MongoDB sans contrôle d'accès.

    mongod --port 27017 --dbpath /data/db1
    
  2. Connectez-vous à l'instance.

    mongo --port 27017
    
  3. Créez l'administrateur de l'utilisateur.

    use admin
    db.createUser(
      {
        user: "myUserAdmin",
        pwd: "abc123",
        roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
      }
    )
    
  4. Redémarrez l'instance MongoDB avec le contrôle d'accès.

    mongod --auth --port 27017 --dbpath /data/db1
    
  5. Authentifiez-vous en tant qu'administrateur utilisateur.

    mongo --port 27017 -u "myUserAdmin" -p "abc123" \
      --authenticationDatabase "admin"
    
132
Camilo Silva

En plus de ce que @Camilo Silva a déjà mentionné, si vous souhaitez donner un accès gratuit pour créer des bases de données, lire, écrire des bases de données, etc., mais que vous ne voulez pas créer de rôle racine, vous pouvez modifier la troisième étape avec les éléments suivants:

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

Pour MongoDB antérieure à 2.6, la commande permettant d’ajouter un utilisateur root est addUser (par exemple).

db.addUser({user:'admin',pwd:'<password>',roles:["root"]})
2
Black