Chaque fois que vous configurez mongodb, vous devez créer un utilisateur administrateur avec le rôle userAdminAnyDatabase, et vous pourrez créer cet utilisateur même si mongod est démarré avec --auth ou non. vous pouvez créer cet utilisateur avec la commande ci-dessous.
use admin
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Après cela, si l'autorisation n'est pas activée, exécutez-la en exécutant mongod avec l'indicateur --auth, ou activez l'autorisation dans mongod.conf et redémarrez le serveur mongod.
Connectez-vous ensuite à mongo shell par la commande ci-dessous avec l'utilisateur admin
mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"
Accédez à la base de données et créez un utilisateur avec l'autorisation readWrite.
use myapplication
db.createUser(
{
user: "myTester",
pwd: "xyz123",
roles: [ { role: "readWrite", db: "myapplication" }]
}
)
Vous pouvez maintenant utiliser l'utilisateur myTester pour lire/écrire dans la base de données myapplication, et chaque fois que vous créez une nouvelle base de données, démarrez mongo shell avec l'utilisateur myUserAdmin et créez un nouvel utilisateur pour la nouvelle base de données.
Dans mongodb, vous pouvez également créer un seul utilisateur et lui donner toutes les autorisations pour toutes les bases de données, mais vous ne devriez pas le faire.
Si vous souhaitez approfondir vos recherches, vous pouvez consulter le lien ci-dessous. https://docs.mongodb.com/v3.2/tutorial/ activer l'authentification/
Et lorsque vous avez accidentellement verrouillé mongodb, vous pouvez désactiver l'autorisation du fichier mongod.conf et accéder à vos données.