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

créer une base de données sécurisée dans mongodb

À partir du didacticiel Java de Mongo

MongoDB peut être exécuté en mode sécurisé où l'accès aux bases de données est contrôlé par une authentification par nom et mot de passe. Lorsqu'elle est exécutée dans ce mode, toute application cliente doit fournir un nom et un mot de passe avant d'effectuer toute opération. Dans le pilote Java, il vous suffit de faire ce qui suit avec l'objet mongo connecté :

boolean auth = db.authenticate(myUserName, myPassword);

Si le nom et le mot de passe sont valides pour la base de données, auth sera vrai. Sinon, ce sera faux. Vous devriez consulter le journal MongoDB pour plus d'informations, le cas échéant.

La plupart des utilisateurs exécutent MongoDB sans authentification dans un environnement de confiance.

Configuration de l'authentification et de la sécurité

L'authentification est stockée dans la collection system.users de chaque base de données. Par exemple, sur une base de données projectx, projectx.system.users contiendra des informations sur l'utilisateur.

Nous devons d'abord configurer un utilisateur administrateur pour l'ensemble du processus du serveur de base de données. Cet utilisateur est stocké dans la base de données d'administration spéciale.

Si aucun utilisateur n'est configuré dans admin.system.users, on peut accéder à la base de données à partir de l'interface localhost sans s'authentifier. Ainsi, depuis le serveur exécutant la base de données (et donc sur localhost), lancez le shell de la base de données et configurez un utilisateur administratif :

$ ./mongo
> use admin
> db.addUser("theadmin", "anadminpassword")

Nous avons maintenant un utilisateur créé pour l'administrateur de la base de données. Notez que si nous ne nous sommes pas authentifiés auparavant, nous devons maintenant si nous souhaitons effectuer d'autres opérations, car il y a un utilisateur dans admin.system.users.

> db.auth("theadmin", "anadminpassword")

Nous pouvons afficher les utilisateurs existants de la base de données avec la commande :

> db.system.users.find()

Maintenant, configurons un utilisateur "normal" pour une autre base de données.

> use projectx
> db.addUser("joe", "passwordForJoe")

Enfin, ajoutons un utilisateur en lecture seule. (uniquement pris en charge dans 1.3.2+)

> use projectx
> db.addUser("guest", "passwordForGuest", true)