MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

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

MongoDB est une base de données multiplateforme orientée documents qui rend le stockage et la récupération des données rapides et faciles. La base de données utilise une structure de type JSON pour les documents, principalement familière aux applications modernes.

MongoDB utilise des collections et des manuscrits dans lesquels les documents sont constitués de paires clé-valeur, l'unité de base des données dans MongoDB. En revanche, les collections contiennent des fonctions et des documents équivalents aux tables de bases de données relationnelles.

Créer un nouvel utilisateur dans MongoDB

Pour ajouter de nouveaux utilisateurs au système, MongoDB fournit une technique interne appelée db.createUser(). Contrairement aux systèmes de base de données traditionnels, les utilisateurs de MongoDB sont liés à une base de données locale appelée base de données d'authentification. Ainsi, ils ne sont pas globalement liés, comme les bases de données SQL conventionnelles.

De plus, la base de données d'authentification et le nom de l'utilisateur servent d'identifiant unique. Ainsi, si deux utilisateurs sont créés dans des bases de données différentes mais partagent les mêmes noms, ils sont identifiés comme deux utilisateurs distincts. Par conséquent, si l'on veut créer un seul utilisateur avec des autorisations sur plusieurs bases de données, il faut autoriser un seul utilisateur à avoir des droits/rôles sur la base de données applicable au lieu de créer l'utilisateur plusieurs fois dans différentes bases de données.

Exemple :

db.createUser(

{       user: "Foss",

        pwd: "password",

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

Commandes de gestion des utilisateurs

Nom/s Description
createUser Cette méthode crée un nouvel utilisateur.
dropAllUsersFromDatabase Supprime tous les utilisateurs d'une base de données.
dropUser Accorde une tâche et ses privilèges à un utilisateur.
grantRolesToUser Un rôle et ses privilèges associés sont attribués à un utilisateur.
revokeRolesFromUser Supprime le rôle d'un utilisateur.
updateUser Cette méthode est utilisée pour mettre à jour les données d'un utilisateur.
usersInfo Cette méthode renvoie des informations sur les utilisateurs fournis.

Ajouter un utilisateur

Lors de l'ajout de l'utilisateur à une base de données spécifiée, utilisez la méthode "db.createUser()". Il est important de noter que l'ajout d'utilisateurs avec des options est beaucoup plus simple que l'insertion d'un document utilisateur dans une base de données non relationnelle.

Exemple :

use foss               // specify the DB

db.createUser(

  {

    user: "fosslinux",

    pwd: passwordPrompt(),  // or cleartext password if you wish

    roles: [

       { role: "read", db: "foss" },

       { role: "read", db: "articles" },

       { role: "read", db: "tutorials" },

       { role: "readWrite", db: "tutorialguides" }

    ]

  }

)

Une fois que vous avez connecté l'instance MongoDB dans l'exemple ci-dessus, vous pouvez l'attacher à la base de données foss pour exécuter la commande db.createUser(). La base de données utilisée servira de base de données d'authentification de l'utilisateur.

Le mot de passe et le nom d'utilisateur sont fournis dans le document qui contient notre appel de méthode sous forme de paires clé-valeur. L'utilisation de rôles contrôle l'accès aux bases de données. Un utilisateur doit avoir un rôle pour accéder à n'importe quelle base de données, même sa propre base de données d'authentification. En outre, un utilisateur a accès à d'autres bases de données du système à l'aide de rôles. Ainsi, les privilèges d'un utilisateur ne sont pas limités à sa base de données d'authentification. Par conséquent, cela permet aux utilisateurs de disposer de divers privilèges sur les nombreuses bases de données selon leurs besoins. Le principe du moindre privilège permet aux utilisateurs de limiter au maximum l'étendue de l'accès à la base de données.‍

Comment créer un utilisateur administrateur dans MongoDB

La création d'un utilisateur admin dans MongoDB se fait à l'aide de la méthode db.createUser(), qui vous permet de créer un utilisateur. Cependant, après avoir créé un utilisateur, vous devez attribuer des rôles d'administrateur. Ces rôles donnent à l'utilisateur des privilèges d'administrateur.

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

Si nous voulons créer un utilisateur qui ne peut travailler qu'avec une seule base de données, nous pouvons utiliser une commande similaire à celle ci-dessus, mais nous ne devons utiliser l'option "userAdmin" qu'une seule fois.

Exemple :

db.createUser(

{        user: "Fosslinux",

         pwd: "password",

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

Répartition du code :

  1. Tout d'abord, il faut spécifier le "nom d'utilisateur" et le "mot de passe" à créer.
  2. Attribuez le rôle à cet utilisateur, qui est l'administrateur de la base de données ; ceci est attribué au rôle "utilisateur admin" puisque le rôle permet à l'utilisateur d'avoir des privilèges administratifs uniquement sur la base de données spécifiée dans la base de données
  3. Enfin, le paramètre DB définit la base de données sur laquelle l'utilisateur doit avoir des droits d'administration.

Gestion des utilisateurs

Pour gérer les utilisateurs, il faut comprendre les rôles qui doivent être définis car MongoDB a toute une liste de fonctions comme le rôle de lecture et le rôle de lecture-écriture. La commande « read role » autorise uniquement l'accès en lecture seule aux bases de données. Le « rôle de lecture-écriture » ​​fournit un accès en lecture et en écriture à la base de données ; cela signifie que l'utilisateur peut exécuter les commandes de mise à jour, d'insertion et de suppression sur les collections de cette base de données.

Exemple :

db.createUser(
{
            user: "Foss",

            pwd: "password",

            roles:[

            {
                        role: "read" , db:"Tutorials"},

    {
                        role: "readWrite" , db:"Guides"}

            }
                          ]
})

L'exemple ci-dessus montre qu'un utilisateur connu sous le nom de Foss est créé et se voit attribuer plusieurs rôles dans plusieurs bases de données. Dans le même modèle, Foss reçoit une autorisation en lecture seule sur la base de données "Tutoriels" et des autorisations en lecture-écriture sur la base de données "Guides".

Ajouter des rôles à MongoDB

Les rôles accordent aux utilisateurs l'accès aux ressources MongoDB. De plus, MongoDB fournit plusieurs rôles intégrés qui permettent aux administrateurs de contrôler l'accès à un système MongoDB. Cependant, lorsque ces rôles ne peuvent pas décrire l'ensemble de privilèges souhaité, il est possible de créer de nouveaux rôles dans une base de données particulière. À l'exception des fonctions créées dans la base de données d'administration, un rôle ne peut inclure que des droits qui s'appliquent à sa base de données et ceux hérités d'autres rôles.

Un rôle défini dans la base de données d'administration peut contenir des droits applicables à la base de données d'administration, à d'autres bases de données ou à la ressource de cluster, et peut hériter des rôles d'autres bases de données. Pour établir un nouveau rôle, utilisez "db.createRole()" et spécifiez le tableau des droits et le tableau des rôles hérités.

MongoDB définit les rôles de manière unique en combinant le nom de la base de données avec le nom du rôle. Chaque rôle est limité à la base de données que vous créez, mais MongoDB stocke toutes les informations de rôle dans la collection adminSystemRoles de la base de données admin. Par exemple, les actions de rôle créatif et d'octroi de rôles sur la ressource de base de données doivent garantir que les rôles sont créés et accordés dans la base de données. Le grantRole spécifie les privilèges pour les nouveaux rôles et les rôles à hériter. L'administrateur utilisateurAnyDatabase et l'administrateur utilisateur des rôles intégrés fournissent les actions CreateRole et attribuer des rôles sur leurs ressources respectives.

Pour créer un rôle avec les restrictions d'authentification spécifiées, il faut définir l'action AuthenticationRetrictions sur la ressource de base de données, dont la fonction est ensuite créée.

La méthode db.grantRole to User() prend les arguments suivants ;

Paramètre Saisir Description
Utilisateur Chaîne Importe le nom de l'utilisateur à qui attribuer les rôles.
Rôles Tableau Importe un tableau de rôles supplémentaires à accorder à l'utilisateur.
Écrire le problème Document Il est facultatif et vise à modifier la commande. Il prend également les mêmes champs avec la commande get last error.

Le paramètre rôles peut spécifier à la fois les fonctions définies par l'utilisateur et intégrées, qui peuvent être obtenues en sélectionnant le rôle avec son nom. Ceci est accompli en se connectant à mongod (un processus démon principal pour le système MongoDB qui gère les demandes de données, effectue des opérations de gestion en arrière-plan et gère l'accès aux données). Alternativement, le mongos (qui est chargé d'établir une connexion entre les applications clientes et le cluster partagé), avec les droits donnés dans la section des exigences. Par exemple, mon utilisateur administrateur créé dans un contrôle d'accès activé peut créer des rôles dans l'administrateur et d'autres bases de données.

Commandes de gestion des rôles

Nom\s Description
createRole Crée un rôle et indique ce qu'il peut faire.
dropRole Supprime le rôle défini par l'utilisateur.
dropAllRolesFromDatabase Supprime tous les rôles que les utilisateurs d'une base de données ont configurés.
grantPrivilegesToRole attribue des privilèges à un rôle que l'utilisateur choisit.
grantRolesToRole indique de quels rôles un rôle défini par l'utilisateur peut hériter des privilèges.
invalidateUserCache Lorsque vous utilisez invalidateUserCache, le cache en mémoire des informations utilisateur, telles que les informations d'identification et les rôles, est vidé.
revokePrivilegesFromRole supprime les privilèges d'un rôle défini par l'utilisateur qui les a.
revokeRolesFromRole supprime les rôles hérités d'un rôle défini par l'utilisateur dont vous ne voulez pas.
rôlesInfo renvoie des informations sur le ou les rôles souhaités.
updateRole Met à jour un rôle configuré par l'utilisateur.

Conclusion

La base de données MongoDB, qui permet de stocker et de récupérer facilement et rapidement des données, peut permettre de créer un utilisateur à l'aide de la commande "db.createUser()". D'autre part, la commande "AdminAnyDatabase" fournit aux utilisateurs tous les privilèges pour accéder à la base de données sous le rôle d'administrateur. Cet article est allé plus loin et a illustré comment attribuer des rôles et des droits. Nous espérons que vous le trouverez utile. Si oui, n'oubliez pas de laisser une remarque dans la section des commentaires ci-dessous.