Aller au contenu

Gestion des privilèges et des rôles personnalisés#

Présentation des rôles et privilèges#

  • Rôles: ensemble de privilèges attribués à un utilisateur
  • Privilèges: actions autorisées sur des ressources spécifiques
  • Objectif: contrôler l'accès et les actions des utilisateurs

Rôles et privilèges intégrés#

  • read: permet de lire les données d'une base de données spécifique
  • readWrite: autorise la lecture et l'écriture de données dans une base de données spécifique
  • dbAdmin: permet la gestion administrative d'une base de données spécifique
  • userAdmin: permet la gestion des utilisateurs d'une base de données spécifique
  • clusterAdmin: autorise la gestion administrative d'un cluster
  • userAdminAnyDatabase: permet la gestion des utilisateurs pour toutes les bases de données
  • dbAdminAnyDatabase: autorise la gestion administrative pour toutes les bases de données
  • readWriteAnyDatabase: permet la lecture et l'écriture de données pour toutes les bases de données
  • root: rôle avec tous les privilèges sur toutes les bases de données

Création et gestion de rôles personnalisés#

  • Utiliser db.createRole() pour créer un nouveau rôle personnalisé
  • Exemple: db.createRole({ role: "customRole", privileges: [], roles: [] })
  • Utiliser db.updateRole() pour mettre à jour un rôle personnalisé
  • Utiliser db.dropRole() pour supprimer un rôle personnalisé

Attribution de privilèges aux rôles personnalisés#

  • Ajouter des privilèges à un rôle personnalisé avec db.updateRole()
  • Exemple: db.updateRole("customRole", { privileges: [{ resource: { db: "exampleDB", collection: "exampleCollection" }, actions: ["find", "update"] }], roles: [] })
  • Attribuer un rôle personnalisé à un utilisateur avec db.updateUser()
  • Exemple: db.updateUser("exampleUser", { roles: ["customRole"] })

Gestion des utilisateurs associés aux rôles#

  • Créer un utilisateur avec un rôle intégré ou personnalisé avec db.createUser()
    • Exemple: db.createUser({ user: "exampleUser", pwd: "examplePassword", roles: ["customRole"] })
  • Modifier les rôles d'un utilisateur avec db.updateUser()
    • Exemple: db.updateUser("exampleUser", { roles: ["readWrite"] })
  • Supprimer un utilisateur avec db.dropUser()
    • Exemple: db.dropUser("exampleUser")