Gestion des utilisateurs MongoDB

La gestion des utilisateurs dans MongoDB implique des opérations telles que la création d'utilisateurs, l'attribution de rôles, l'authentification et la connexion.

Ci-dessous se trouve une explication détaillée, incluant la façon de gérer les utilisateurs avec MongoDB Shell (mongo) ou MongoDB Compass.

Gestion des utilisateurs avec MongoDB Shell (mongo)

Ce qui suit est une explication détaillée de la gestion des utilisateurs à l'aide de MongoDB Shell (mongosh), y compris les étapes spécifiques de création d'utilisateurs, d'attribution de rôles, d'authentification et de connexion.

1. Se connecter à MongoDB

Tout d'abord, ouvrez votre terminal et utilisez la commande mongosh pour vous connecter au serveur MongoDB :

mongosh --host <hostname> --port <port>

Explication :

  • mongosh: Lance l'outil en ligne de commande MongoDB Shell.
  • --host <hostname>: Spécifie le nom d'hôte ou l'adresse IP du serveur MongoDB.
    • <hostname>: Nom d'hôte du serveur MongoDB (par ex.,localhost) ou l'adresse IP (par ex.,127.0.0.1)。
  • --port <port>: Spécifie le numéro de port du serveur MongoDB.
    • <port>: Le numéro de port sur lequel le serveur MongoDB écoute, le port par défaut est27017。

2. Passer à la base de données cible

Dans MongoDB, les utilisateurs sont créés pour une base de données spécifique. Utilisez la commandeusepour passer à la base de données dans laquelle vous souhaitez créer l'utilisateur :

use <database_name>
  • database_name- est la base de données vers laquelle basculer.

3. Créer un utilisateur

Utilisez la commande db.createUser pour créer un utilisateur et attribuer des rôles.

Par exemple, pour créer un utilisateur nommé testuser avec le mot de passe password123 et accorder les rôles readWrite et dbAdmin :

db.createUser({
  user: "testuser",
  pwd: "password123",
  roles: [
    { role: "readWrite", db: "<database_name>" },
    { role: "dbAdmin", db: "<database_name>" }
  ]
})

4. Vérifier l'utilisateur

Après avoir créé l'utilisateur, vous pouvez utiliser la commande db.auth pour vérifier l'identité de l'utilisateur :

db.auth("testuser", "password123")

5. Activer l'authentification

Pour garantir que seuls les utilisateurs authentifiés peuvent accéder à MongoDB, vous devez activer l'authentification.

Modifiez le fichier de configuration MongoDB mongod.conf et ajoutez le contenu suivant :

security:
  authorization: "enabled"

Redémarrez ensuite le service MongoDB pour appliquer les modifications.

6. Se connecter en tant qu'utilisateur

Après avoir activé l'authentification, vous devez vous connecter à MongoDB à l'aide des identifiants de l'utilisateur créé :

mongosh --host <hostname> --port <port> -u "testuser" -p "password123" --authenticationDatabase "<database_name>"

7. Supprimer un utilisateur

Utilisez la commandedb.dropUserpour supprimer l'utilisateur spécifié.

Par exemple, pour supprimer l'utilisateur nommé testuser :

db.dropUser("testuser")

Exemples d'opérations

Voici un exemple complet de flux de travail :

Démarrez le shell MongoDB et connectez-vous au serveur :

mongosh --host localhost --port 27017

Passez à la base de données testdb :

use testdb

Créez l'utilisateur testuser :

db.createUser({
  user: "testuser",
  pwd: "password123",
  roles: [{ role: "readWrite", db: "testdb" }]
})

Activer l'authentification et redémarrer l'instance MongoDB

Modifiez le fichier mongod.conf et ajoutez le contenu suivant :

security:
  authorization: "enabled"

Redémarrer le service MongoDB :

sudo systemctl restart mongod

Se connecter avec authentification en utilisant l'utilisateur testuser :

mongosh --host localhost --port 27017 -u "testuser" -p "password123" --authenticationDatabase "testdb"

Supprimer l'utilisateur testuser :

db.dropUser("testuser")
Autres extensions