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?
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.
Démarrez MongoDB sans contrôle d'accès.
mongod --port 27017 --dbpath /data/db1
Connectez-vous à l'instance.
mongo --port 27017
Créez l'administrateur de l'utilisateur.
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Redémarrez l'instance MongoDB avec le contrôle d'accès.
mongod --auth --port 27017 --dbpath /data/db1
Authentifiez-vous en tant qu'administrateur utilisateur.
mongo --port 27017 -u "myUserAdmin" -p "abc123" \
--authenticationDatabase "admin"
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" } ]
}
)
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"]})