J'utilise la même chaîne de connexion en local et en production. Lorsque la chaîne de connexion estmongodb://localhost/mydb
Quel est le nom d'utilisateur et le mot de passe? Est-il sûr de le garder ainsi?
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 paramètre du 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 d'utilisateurs.
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 d'utilisateurs.
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 souhaitez pas créer un rôle racine, vous pouvez modifier la 3ème étape avec ce qui suit:
use admin db.createUser( { user: "myUserAdmin", pwd: "abc123", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "dbAdminAnyDatabase", db: "admin" }, { role: "readWriteAnyDatabase", db: "admin" } ] } )
la source
Pour MongoDB antérieur à 2.6, la commande pour ajouter un utilisateur root est
addUser
(par exemple)db.addUser({user:'admin',pwd:'<password>',roles:["root"]})
la source
db.addUser
. À partir de 2.6 et dans la version actuelle 3.4.x, vous pouvez créer un utilisateur avecdb.CreateUser
.db.createUser
;) ( docs.mongodb.com/manual/reference/method/db.createUser )En plus des réponses fournies précédemment, une option consiste à suivre l'approche 'exception localhost' pour créer le premier utilisateur si votre base de données est déjà démarrée avec le contrôle d'accès (
--auth
commutateur). Pour ce faire, vous devez avoir un accès localhost au serveur, puis exécuter:mongo use admin db.createUser( { user: "user_name", pwd: "user_pass", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "readWriteAnyDatabase", db: "admin" }, { role: "dbAdminAnyDatabase", db: "admin" } ] })
Comme indiqué dans la documentation MongoDB:
Voici le lien vers cette section de la documentation.
la source