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")