Comment créer un utilisateur et ajouter un rôle dans MongoDB

⚡ Résumé intelligent

Création d'un utilisateur et ajout d'un rôle dans MongoDB s'appuie sur la méthode db.createUser() pour définir les informations d'identification, attribuer des rôles intégrés et limiter les privilèges à des bases de données spécifiques, renforçant ainsi le contrôle d'accès entre les comptes d'administration et les comptes de base de données unique.

  • (I.e. Méthode de base : La commande db.createUser() crée un compte en spécifiant l'utilisateur, le mot de passe et un tableau de rôles dans une seule instruction.
  • 🛡️ Portée de l'administrateur : Le rôle userAdminAnyDatabase octroie des droits de gestion sur toutes les bases de données, tandis que le rôle userAdmin limite le contrôle à une seule base de données nommée.
  • (I.e. Attribution des rôles : Les rôles intégrés tels que read et readWrite correspondent précisément aux actions qu'un utilisateur peut effectuer sur une collection.
  • 👥 Bases de données multiples : Un seul compte peut détenir différents rôles dans plusieurs bases de données au sein d'un seul tableau de rôles.
  • Vérification: La méthode db.getUsers() et le résultat renvoyé confirment que les comptes et les privilèges ont été correctement attribués.

Comment créer un utilisateur et lui ajouter un rôle ? MongoDB

Quels sont les rôles intégrés dans MongoDB?

Avant de créer un compte, il est utile de comprendre les rôles intégrés qui MongoDB Un rôle est un ensemble nommé de privilèges, et chaque privilège associe une ressource (une base de données ou une collection) aux actions autorisées sur celle-ci. L'attribution d'un rôle lors de la création d'un utilisateur détermine donc précisément les actions que ce compte peut effectuer.

MongoDB Il regroupe ses rôles intégrés en rôles d'utilisateur de base de données, rôles d'administrateur de base de données, rôles d'administrateur de cluster, rôles de sauvegarde et de restauration, et rôles de superutilisateur. Le tableau ci-dessous récapitule les rôles les plus fréquemment utilisés pour la gestion des utilisateurs :

Rôle Catégories Privilèges accordés
lire Utilisateur de la base de données Accès en lecture seule à toutes les collections non système d'une base de données.
lireÉcriture Utilisateur de la base de données Accès en lecture seule, avec possibilité d'insérer, de mettre à jour et de supprimer des collections.
dbAdmin Administrateur de base de données Gestion des schémas, de l'indexation et des statistiques d'une base de données.
Administrateur utilisateur Administrateur de base de données Créez et modifiez les utilisateurs et les rôles sur une seule base de données.
userAdminAnyDatabase Superutilisateur Gestion des utilisateurs pour chaque base de données de l'instance.
racine Superutilisateur Accès complet à toutes les ressources et opérations.

MongoDB Créer un utilisateur administrateur

Création d'un administrateur d'utilisateurs dans MongoDB se fait en utilisant la méthode createUser. L'exemple suivant montre comment cela peut être réalisé.

db.createUser(
{	user: "Guru99",
	pwd: "password",

	roles:[{role: "userAdminAnyDatabase" , db:"admin"}]})

MongoDB Créer un utilisateur administrateur

Code Explication:

  1. La première étape consiste à spécifier le « nom d'utilisateur » et le « mot de passe » qui doivent être créés.
  2. La deuxième étape consiste à attribuer un rôle à l'utilisateur. Comme il doit s'agir d'un administrateur de base de données, nous lui avons attribué le rôle « userAdminAnyDatabase ». Ce rôle lui permet de disposer de privilèges d'administration sur toutes les bases de données. MongoDB.
  3. Le paramètre db spécifie la base de données d'administration, qui est une base de données Meta spéciale au sein de MongoDB qui contient les informations de cet utilisateur.

Si la commande est exécutée avec succès, la sortie suivante s'affichera :

Sortie :

MongoDB Créer un utilisateur administrateur

Le résultat indique qu'un utilisateur a appelé «GuruLe compte « 99 » a été créé et cet utilisateur dispose de privilèges sur toutes les bases de données. MongoDB.

MongoDB Créer un utilisateur pour une base de données unique

Pour créer un utilisateur qui gérera une seule base de données, nous pouvons utiliser la même commande que celle mentionnée ci-dessus, mais nous devons utiliser uniquement l'option « userAdmin ».

L'exemple suivant montre comment cela peut être réalisé :

MongoDB Créer un utilisateur pour une base de données unique

db.createUser(
{
	user: "Employeeadmin",

	pwd: "password",

	roles:[{role: "userAdmin" , db:"Employee"}]})

Code Explication:

  1. La première étape consiste à spécifier le « nom d'utilisateur » et le « mot de passe » qui doivent être créés.
  2. La deuxième étape consiste à attribuer un rôle à l'utilisateur. Dans ce cas précis, puisqu'il doit s'agir d'un administrateur de base de données, le rôle « userAdmin » lui est attribué. Ce rôle lui confère des privilèges d'administration uniquement sur la base de données spécifiée dans l'option « db ».
  3. Le paramètre db spécifie la base de données sur laquelle l'utilisateur doit disposer de privilèges administratifs.

Si la commande est exécutée avec succès, la sortie suivante s'affichera :

Sortie :

MongoDB Créer un utilisateur pour une base de données unique

Le résultat montre qu'un utilisateur appelé « Employeeadmin » a été créé et que cet utilisateur dispose de privilèges uniquement sur la base de données « Employee ».

Gérer les utilisateurs

Commencez par bien comprendre les rôles que vous devez définir. Une liste complète des rôles est disponible dans MongoDBPar exemple, il existe le rôle « lecture », qui autorise uniquement l’accès en lecture aux bases de données, et le rôle « lecture/écriture », qui permet d’accéder à la fois à la lecture et à l’écriture. Cela signifie que l’utilisateur peut exécuter les commandes d’insertion, de suppression et de mise à jour sur les collections de cette base de données.

Gérer les utilisateurs

db.createUser(
{
	user: "Mohan",

	pwd: "password",

	roles:[
	{ role: "read" , db:"Marketing" },
	{ role: "readWrite" , db:"Sales" }
	]
})

L'extrait de code ci-dessus montre la création d'un utilisateur nommé Mohan, auquel sont attribués plusieurs rôles dans différentes bases de données. Dans cet exemple, il dispose d'un accès en lecture seule à la base de données « Marketing » et d'un accès en lecture/écriture à la base de données « Ventes ».

Comment consulter et gérer MongoDB Utilisateurs

Une fois les comptes créés, MongoDB fournit un ensemble de commandes pour les inspecter, les mettre à jour et les supprimer sans les abandonnerping et recréent chaque utilisateur. Ces commandes s'exécutent sur la base de données où l'utilisateur a été créé ; assurez-vous donc de sélectionner la base de données appropriée à l'aide de l'instruction `use` avant de les exécuter.

Les commandes de gestion des utilisateurs les plus courantes sont :

  • db.getUsers() — liste tous les utilisateurs définis dans la base de données actuelle ainsi que les rôles que chacun détient.
  • db.getUser("nom_utilisateur") — renvoie les détails d'un seul compte, ce qui est utile pour l'audit des privilèges.
  • db.grantRolesToUser() — ajoute un ou plusieurs rôles à un utilisateur existant sans affecter ses rôles actuels.
  • db.révoquerLesRôlesDeL'Utilisateur() — supprime des rôles spécifiques, restreignant l'accès lorsque les responsabilités changent.
  • db.changeUserPassword() — réinitialise le mot de passe d'un compte tout en conservantping ses rôles intacts.
  • db.dropUser() — supprime définitivement un utilisateur de la base de données.

L'exemple ci-dessous attribue un rôle supplémentaire, en révoque un autre, réinitialise un mot de passe et supprime enfin le compte :

// List all users in the current database
db.getUsers()

// Grant an additional role to an existing user
db.grantRolesToUser("Employeeadmin", [{ role: "readWrite", db: "Employee" }])

// Remove a role from a user
db.revokeRolesFromUser("Employeeadmin", [{ role: "userAdmin", db: "Employee" }])

// Change a user's password
db.changeUserPassword("Employeeadmin", "newPassword")

// Delete a user
db.dropUser("Employeeadmin")

L'exécution de db.getUsers() à nouveau après ces opérations confirme que les modifications ont été appliquées et que seuls les comptes et rôles prévus subsistent.

Meilleures pratiques pour MongoDB Gestion des utilisateurs

Des comptes utilisateurs bien conçus permettent de maintenir une bonne organisation. MongoDB Le déploiement est sécurisé et facile à auditer. Les pratiques suivantes réduisent le risque de divulgation accidentelle de données et d'utilisation abusive des privilèges :

  • Appliquer le principe du moindre privilège : N’accordez que les rôles dont un compte a réellement besoin, en privilégiant les droits de lecture et d’écriture sur une seule base de données plutôt que des rôles administratifs étendus.
  • Évitez d'utiliser Root en production : Réservez les rôles root et userAdminAnyDatabase à la configuration et aux tâches d'urgence plutôt qu'aux opérations quotidiennes.
  • Activer l'authentification : Démarrez le serveur avec l'option –auth afin que les identifiants soient effectivement appliqués.
  • Utilisez des mots de passe forts : Combinez longueur et complexité, et faites tourner les mots de passe avec db.changeUserPassword() selon une planification.
  • Auditer régulièrement : RevConsultez régulièrement le résultat de db.getUsers() et supprimez les comptes qui ne sont plus nécessaires.

Ensemble, ces habitudes garantissent que chaque compte correspond à un besoin réel et que l'accès peut être tracmodifié à chaque fois qu'un audit de sécurité a lieu.

FAQ

Oui. Les assistants IA peuvent transformer une simple description en une commande db.createUser() valide, lui attribuer le tableau de rôles approprié et l'appliquer à une base de données. Il est impératif de tester la commande générée sur une base de données hors production avant de l'exécuter.

Oui. Les outils d'audit basés sur l'IA peuvent analyser la sortie de db.getUsers(), identifier les comptes disposant des privilèges root ou userAdminAnyDatabase et suggérer des rôles aux privilèges minimaux. Les administrateurs doivent néanmoins examiner chaque recommandation avant de révoquer l'accès à un système en production.

Le rôle userAdmin gère les utilisateurs et les rôles d'une base de données spécifique, tandis que userAdminAnyDatabase octroie des privilèges d'administration utilisateur sur l'ensemble des bases de données de l'instance. Utilisez userAdmin pour un contrôle ciblé et userAdminAnyDatabase uniquement pour les administrateurs de confiance.

Basculez vers la base de données où se trouve l'utilisateur à l'aide de la commande use, puis exécutez db.dropUser(“username”). MongoDB Supprime le compte et ses rôles dans cette base de données. Confirmez la suppression en exécutant ensuite db.getUsers().

Résumez cet article avec :