Commandes d'administration MongoDB essentielles pour les débutants

Maîtrisez les commandes administratives essentielles pour MongoDB en utilisant le shell `mongosh`. Ce guide couvre les tâches fondamentales pour les débutants, y compris le changement de base de données, la création/suppression de collections, la gestion des utilisateurs avec des rôles, et les vérifications cruciales de l'état du système comme `serverStatus`. Apprenez les commandes de base nécessaires pour gérer votre environnement NoSQL en toute sécurité.

39 vues

Commandes d'Administration MongoDB Essentielles pour Débutants

MongoDB, une base de données de documents NoSQL de premier plan, est reconnue pour sa flexibilité et son évolutivité. Alors que les développeurs se concentrent souvent sur les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer), une gestion efficace de l'environnement de la base de données repose fortement sur la compréhension des commandes administratives essentielles. Ce guide présente aux débutants les commandes de base nécessaires à la gestion des bases de données, à l'administration des utilisateurs et aux contrôles de santé du système, garantissant ainsi que votre instance MongoDB fonctionne sans problème et en toute sécurité.

Maîtriser ces tâches administratives est crucial pour quiconque passe d'un simple développement local à des environnements de production. Nous explorerons comment interagir avec le shell mongosh pour gérer les bases de données, les collections, les utilisateurs et effectuer les diagnostics système nécessaires.


Accéder au Shell MongoDB (mongosh)

L'interface principale pour exécuter des commandes administratives est le Shell MongoDB, généralement accessible à l'aide de la commande mongosh. C'est là que vous exécutez des commandes basées sur JavaScript directement sur votre instance MongoDB.

Pour vous connecter à une instance MongoDB locale s'exécutant sur le port par défaut (27017), tapez simplement :

mongosh

Une fois connecté, vous verrez l'invite >, indiquant que vous êtes prêt à émettre des commandes.

Commandes de Gestion de Base de Données

Gérer la base de données que vous utilisez actuellement et visualiser les bases de données existantes sont des tâches administratives fondamentales.

Lister Toutes les Bases de Données

Pour voir une liste de toutes les bases de données actuellement présentes sur le serveur MongoDB, utilisez la commande show dbs :

> show dbs
admin    40.00 KiB
config   72.00 KiB
local    72.00 KiB
myAppDB 100.00 KiB

Changer de Base de Données

Avant de pouvoir créer une base de données ou une collection, vous devez basculer le contexte vers la base de données souhaitée à l'aide de la commande use. Si la base de données n'existe pas, MongoDB la créera implicitement lors de la première insertion de données.

> use myAppDB
switched to db myAppDB

Afficher la Base de Données Actuelle

Pour confirmer dans quel contexte de base de données vous opérez actuellement, utilisez db :

> db
myAppDB

Supprimer une Base de Données

Avertissement : Cette action supprime définitivement toutes les données de la base de données spécifiée. Utilisez-la avec une extrême prudence, surtout dans les environnements de production.

Pour supprimer la base de données actuelle (celle renvoyée par db) :

> db.dropDatabase()
{ "dropped" : "myAppDB", "ok" : 1 }

Commandes de Gestion de Collection

Les collections sont analogues aux tables dans les bases de données relationnelles. Les gérer est simple en utilisant le raccourci de l'objet db.

Lister les Collections

Lorsque vous utilisez une base de données spécifique, listez toutes les collections qu'elle contient à l'aide de show collections (ou de l'équivalent db.getCollectionNames() dans les versions plus anciennes) :

> show collections
users
products
orders

Créer des Collections

Les collections sont souvent créées automatiquement lors de la première insertion. Cependant, vous pouvez en créer une explicitement à l'aide de db.createCollection() pour contrôler les règles de validation ou le plafonnement.

// Création d'une collection standard nommée 'logs'
> db.createCollection("logs")
{ "ok" : 1 }

Supprimer une Collection

Pour supprimer entièrement une collection :

> db.logs.drop()
true

Administration des Utilisateurs et de la Sécurité

Pour toute base de données destinée à une utilisation en production, sécuriser l'accès via l'authentification des utilisateurs est obligatoire. La gestion des utilisateurs est généralement effectuée dans la base de données admin ou dans la base de données spécifique où l'utilisateur doit avoir des autorisations.

Basculer vers la Base de Données Admin pour la Création d'Utilisateur

Il est de pratique courante de créer des utilisateurs administratifs dans la base de données admin, bien que des utilisateurs basés sur des rôles puissent être créés dans des bases de données d'application.

> use admin
switched to db admin

Créer un Utilisateur

Utilisez db.createUser() pour ajouter un nouvel utilisateur. Cela nécessite de spécifier le nom d'utilisateur, un mot de passe sécurisé et les rôles attribués.

> db.createUser(
...   {
...     user: "appAdmin",
...     pwd: passwordPrompt(), // Demande le mot de passe de manière sécurisée
...     roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWrite" ]
...   }
... )
  • Conseil : L'utilisation de passwordPrompt() est fortement recommandée par rapport à l'intégration de mots de passe en texte clair dans les scripts.

Lister les Utilisateurs

Pour voir les utilisateurs existants dans la base de données actuelle :

> show users

Surveillance et Diagnostics du Système

Les administrateurs ont besoin de moyens pour vérifier la santé, l'état et la configuration de l'instance MongoDB en cours d'exécution.

Vérifier l'État du Serveur

La commande serverStatus renvoie un document complet détaillant les statistiques sur le fonctionnement du serveur, y compris l'utilisation de la mémoire, les connexions et les opérations.

> db.serverStatus()
// La sortie sera un grand document JSON contenant des métriques.

Afficher les Connexions Actuelles

Pour voir les connexions client actives, vous pouvez interroger la commande currentOp ou regarder dans la sortie de serverStatus sous la section des connexions. Une façon directe d'afficher les opérations actuelles est :

> db.currentOp()

Vérifier la Configuration

Pour afficher les paramètres de configuration actuellement appliqués à l'instance :

> db.getMongo().getDB('admin').runCommand({ getParameter: 1, all: 1 })

Résumé et Prochaines Étapes

Ces commandes essentielles — couvrant le changement de base de données, la gestion des collections, la création d'utilisateurs et la surveillance de base — constituent le fondement d'une administration MongoDB efficace. Bien que mongosh fournisse un retour immédiat, une surveillance avancée nécessite souvent une intégration avec MongoDB Compass ou l'utilisation de l'interface MongoDB Atlas pour les diagnostics visuels.

Meilleure Pratique : Connectez-vous toujours avec des identifiants et restreignez les rôles d'utilisateur aux autorisations minimales nécessaires (Principe du Moindre Privilège).

Commencez à pratiquer ces commandes dans un environnement non-production pour acquérir de la confiance avant de gérer des magasins de données critiques.