MongoDB est une base de données de documents gratuite et open-source. Il appartient à une famille de bases de données appelée NoSQL, qui est différente des bases de données SQL traditionnelles basées sur des tables comme MySQL et PostgreSQL.
Dans MongoDB, les données sont stockées dans des documents flexibles de type JSON où les champs peuvent varier d'un document à l'autre. Il ne nécessite pas de schéma prédéfini et la structure des données peut être modifiée au fil du temps.
Dans ce tutoriel, nous expliquerons comment installer et configurer la dernière version de MongoDB Community Edition sur Debian 10 Buster.
Installation de MongoDB #
MongoDB n'est pas disponible dans les référentiels Debian Buster standard. Nous allons activer le référentiel MongoDB officiel et installer les packages.
Au moment de la rédaction de cet article, la dernière version de MongoDB est la version 4.2. Avant de commencer l'installation, rendez-vous sur la page Installer sur Debian de la documentation de MongoDB et vérifiez si une nouvelle version est disponible.
Effectuez les étapes suivantes en tant que root ou utilisateur avec des privilèges sudo pour installer MongoDB sur un système Debian :
-
Installez les packages requis pour ajouter un nouveau référentiel :
sudo apt install dirmngr gnupg apt-transport-https software-properties-common ca-certificates curl
-
Ajoutez la clé MongoDB GPG à votre système :
curl -fsSL https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
-
Activez le dépôt MongoDB :
sudo add-apt-repository 'deb https://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main'
Les packages avec des versions plus anciennes de MongoDB ne sont pas disponibles pour Debian 10.
-
Mettez à jour la liste des packages et installez le
mongodb-org
méta-paquet :sudo apt update
sudo apt install mongodb-org
Les packages suivants seront installés sur le système dans le cadre de
mongodb-org
paquet :mongodb-org-server
- Lemongod
démon et les scripts d'initialisation et configurations correspondants.mongodb-org-mongos
- Lesmongos
démon.mongodb-org-shell
- Le shell mongo est une interface JavaScript interactive vers MongoDB. Il est utilisé pour effectuer des tâches administratives via la ligne de commande.mongodb-org-tools
- Contient plusieurs outils MongoDB pour importer et exporter des données, des statistiques, ainsi que d'autres utilitaires.
-
Démarrez le service MongoDB et activez-le pour qu'il démarre au démarrage :
sudo systemctl enable mongod --now
-
Pour vérifier si l'installation s'est terminée avec succès, connectez-vous au serveur de base de données MongoDB en utilisant le
mongo
outil et imprimer l'état de la connexion :mongo --eval 'db.runCommand({ connectionStatus: 1 })'
La sortie ressemblera à ceci :
MongoDB shell version v4.2.1 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("09f11c53-605f-44ad-abec-ec5801bb6b06") } MongoDB server version: 4.2.1 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }
Une valeur de
1
pour leok
le champ indique le succès.
Configuration de MongoDB #
Le fichier de configuration MongoDB est nommé mongod.conf
et se trouve dans le /etc
annuaire. Le fichier est au format YAML.
Les paramètres de configuration par défaut sont suffisants pour la plupart des utilisateurs. Cependant, pour les environnements de production, il est recommandé de décommenter la section de sécurité et d'activer l'autorisation, comme indiqué ci-dessous :
/etc/mongod.confsecurity:
authorization: enabled
L'authorization
L'option active le contrôle d'accès basé sur les rôles (RBAC) qui régule l'accès des utilisateurs aux ressources et aux opérations de la base de données. Si cette option est désactivée, chaque utilisateur peut accéder à toutes les bases de données et effectuer n'importe quelle action.
Après avoir modifié le fichier de configuration, redémarrez le service mongod pour que les modifications prennent effet :
sudo systemctl restart mongod
Pour trouver plus d'informations sur les options de configuration disponibles dans MongoDB 4.2, visitez la page de documentation Options du fichier de configuration.
Création d'un numéro d'utilisateur administratif MongoDB
Si vous avez activé l'authentification MongoDB, vous devrez créer un utilisateur administratif qui peut accéder et gérer l'instance MongoDB. Pour ce faire, accédez au shell mongo avec :
mongo
Depuis le shell MongoDB, tapez la commande suivante pour vous connecter à admin
base de données :
use admin
switched to db admin
Exécutez la commande suivante pour créer un nouvel utilisateur nommé mongoAdmin
avec le userAdminAnyDatabase
rôle :
db.createUser(
{
user: "mongoAdmin",
pwd: "changeMe",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Successfully added user: {
"user" : "mongoAdmin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
Vous pouvez nommer l'utilisateur administratif MongoDB comme vous le souhaitez. Quittez le shell mongo avec :
quit()
Pour tester les modifications, accédez au shell mongo en utilisant l'utilisateur administratif que vous avez précédemment créé :
mongo -u mongoAdmin -p --authenticationDatabase admin
Entrez le mot de passe lorsque vous y êtes invité. Une fois que vous êtes dans le shell MongoDB, connectez-vous à admin
base de données :
use admin
switched to db admin
Maintenant, imprimez les utilisateurs avec :
show users
{
"_id" : "admin.mongoAdmin",
"userId" : UUID("cdc81e0f-db58-4ec3-a6b8-829ad0c31f5c"),
"user" : "mongoAdmin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}