MongoDB peut être exécuté en mode sécurisé où l'accès aux bases de données est contrôlé par le nom et le mot de passe d'authentification. Lorsque vous exécutez dans ce mode, toute application client doit fournir un nom et un mot de passe avant d'effectuer toute opération. Dans le pilote Java, il vous suffit de faire les opérations suivantes avec le connecté mongo objet :
Si le nom et le mot de passe sont valides pour la base de données, auth sera vrai. Sinon, il sera faux. Vous devriez regarder la MongoDB journal pour plus d'informations, si disponibles.
La plupart des utilisateurs d'exécuter MongoDB sans authentification dans un environnement de confiance.
La configuration de l'Authentification et de la Sécurité
Authentification est stocké dans chaque base de données du système.les utilisateurs de la collection. Par exemple, sur une base de données projectx, projectx.système.les utilisateurs pourront contenir des informations de l'utilisateur.
Nous devez tout d'abord configurer un compte d'utilisateur administrateur pour l'ensemble de la db processus de serveur. Cet utilisateur est enregistré sous le spécial admin de la base de données.
Si aucun utilisateur sont configurés dans l'admin.système.les utilisateurs, on peut accéder à la base de données de l'interface localhost sans avoir à s'authentifier. Ainsi, à partir du serveur exécutant la base de données (et donc sur localhost), exécuter la base de données shell et configurer un utilisateur administratif:
$ ./mongo
> use admin
> db.addUser("theadmin","anadminpassword")
Nous avons maintenant un utilisateur créé pour la base de données de admin. Notez que si nous ne l'avons pas déjà authentifié, nous devons maintenant si nous voulons effectuer d'autres opérations, comme il y a un utilisateur dans l'admin.système.utilisateurs.
> db.auth("theadmin","anadminpassword")
Nous pouvons voir que les utilisateurs existants de la base de données avec la commande:
> db.system.users.find()
Maintenant, nous allons configurer un "régulier" de l'utilisateur pour une autre base de données.
> use projectx
> db.addUser("joe","passwordForJoe")
Enfin, nous allons ajouter un readonly utilisateur. (pris en charge uniquement dans la section 1.3.2+)
> use projectx
> db.addUser("guest","passwordForGuest",true)
Donc, vous avez créé votre admin theadmin dans l'admin de la base de données, puis redémarré mongod avec --auth option. Comment, maintenant, que si vous ne ./mongo admin, vous serez connecté automatiquement w/o fournir à l'utilisateur et pass? Dans ce cas, vous avez commencé le shell mongo mais pas encore authentifié. Essayer et faire une opération, par exemple show collections, vous obtiendrez un unauthorized erreur.
De Mongo Java Tutoriel
MongoDB peut être exécuté en mode sécurisé où l'accès aux bases de données est contrôlé par le nom et le mot de passe d'authentification. Lorsque vous exécutez dans ce mode, toute application client doit fournir un nom et un mot de passe avant d'effectuer toute opération. Dans le pilote Java, il vous suffit de faire les opérations suivantes avec le connecté mongo objet :
Si le nom et le mot de passe sont valides pour la base de données, auth sera vrai. Sinon, il sera faux. Vous devriez regarder la MongoDB journal pour plus d'informations, si disponibles.
La plupart des utilisateurs d'exécuter MongoDB sans authentification dans un environnement de confiance.
La configuration de l'Authentification et de la Sécurité
Authentification est stocké dans chaque base de données du système.les utilisateurs de la collection. Par exemple, sur une base de données projectx, projectx.système.les utilisateurs pourront contenir des informations de l'utilisateur.
Nous devez tout d'abord configurer un compte d'utilisateur administrateur pour l'ensemble de la db processus de serveur. Cet utilisateur est enregistré sous le spécial admin de la base de données.
Si aucun utilisateur sont configurés dans l'admin.système.les utilisateurs, on peut accéder à la base de données de l'interface localhost sans avoir à s'authentifier. Ainsi, à partir du serveur exécutant la base de données (et donc sur localhost), exécuter la base de données shell et configurer un utilisateur administratif:
Nous avons maintenant un utilisateur créé pour la base de données de admin. Notez que si nous ne l'avons pas déjà authentifié, nous devons maintenant si nous voulons effectuer d'autres opérations, comme il y a un utilisateur dans l'admin.système.utilisateurs.
Nous pouvons voir que les utilisateurs existants de la base de données avec la commande:
Maintenant, nous allons configurer un "régulier" de l'utilisateur pour une autre base de données.
Enfin, nous allons ajouter un readonly utilisateur. (pris en charge uniquement dans la section 1.3.2+)
theadmin
dans l'admin de la base de données, puis redémarré mongod avec--auth
option. Comment, maintenant, que si vous ne./mongo admin
, vous serez connecté automatiquement w/o fournir à l'utilisateur et pass?Dans ce cas, vous avez commencé le shell mongo mais pas encore authentifié. Essayer et faire une opération, par exemple
show collections
, vous obtiendrez ununauthorized
erreur.OriginalL'auteur Kerem Baydoğan
> use admin
> db.addUser("admin", "xyzxyz")
> use newdb
> db.addUser("newuser", "strongpwd")
ppa
, alors qu'il est configuré comme un service.sudo service mongodb stop
Si il a été installé à partir des sources, arrêter le processus à l'aide de:
/etc/init.d/mongodb stop
vim /etc/mongodb.conf
auth = true
sudo service mongodb restart
d'autre
mongod --config /etc/mongodb.conf
> show collections
surnewdb
devrait donner l'erreuret devrait fonctionner après
> db.auth("newuser", "strongpwd")
Maintenant la db
newdb
est sécurisé.OriginalL'auteur amarprabhu