J'essaie de créer un utilisateur simple avec les droits d'accès à n'importe quelle base de données et je peux effectuer n'importe quelle action. Lorsque j'essaie d'exécuter la createUser
commande, j'ai eu cette erreur:
db.createUser({ user: "mongoadmin" , pwd: "mongoadmin", roles: ["userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase"]})
2015-08-20T17:09:42.300+0000 E QUERY Error: couldn't add user: No role named userAdminAnyDatabase@new_vehicles_catalog
Le problème ci-dessus ne se produit que lorsque j'active la configuration d'authentification et que j'en ai besoin.
Alors, comment puis-je créer un utilisateur avec l'autorisation d'administrateur pour n'importe quelle base de données. Je le veux car j'ai configuré mes services mongo pour utiliser la connexion d'authentification. Si je veux exécuter un vidage de mes données, je dois utiliser ces paramètres d'authentification.
S'il vous plaît une aide?
Utilisation de mongo version 3.0.5 .
le service est sur Amazon Linux AMI 2015.03 (HVM), type de volume SSD - ami-1ecae776
Conformément à
MongoDB BOL
Activer l'authentification avec le contrôle d'accès activé, assurez-vous que vous disposez d'un utilisateur avec le rôle userAdmin ou userAdminAnyDatabase dans la base de données d'administration. Cet utilisateur peut administrer des utilisateurs et des rôles tels que: créer des utilisateurs, accorder ou révoquer des rôles aux utilisateurs et créer ou modifier des rôles douaniers.Vous pouvez créer des utilisateurs avant ou après avoir activé le contrôle d'accès. Si vous activez le contrôle d'accès avant de créer un utilisateur, MongoDB fournit une exception localhost qui vous permet de créer un administrateur utilisateur dans la base de données admin. Une fois créé, vous devez vous authentifier en tant qu'administrateur d'utilisateurs pour créer des utilisateurs supplémentaires selon vos besoins.
Procédure
Voici la procédure suivante à travers laquelle vous pouvez
Enable Auth
. Ajoute d'abord un administrateur utilisateur à une instance MongoDB exécutée sans contrôle d'accès, puis active le contrôle d'accès.Se connecter à l'instance
Par exemple, connectez un
mongo
shell à l'instance.Spécifiez des options de ligne de commande supplémentaires appropriées pour connecter le
mongo
shell à votre déploiement, telles que--host
.Créer l'administrateur utilisateur
Par exemple ici dans la base de données d'administration, ajoutez un utilisateur avec le
userAdminAnyDatabase
rôle. Par exemple, ce qui suit crée l'utilisateurmyUserAdmin
dans la base de données d'administration :Déconnectez la
mongo
coque.Redémarrez l'instance MongoDB avec le contrôle d'accès
Redémarrez l'
mongod
instance avec l'option de ligne de commande --auth ou, si vous utilisez un fichier de configuration, le paramètre security.authorization .Les clients qui se connectent à cette instance doivent désormais s'authentifier en tant
MongoDB
qu'utilisateur. Les clients ne peuvent effectuer que des actions déterminées par les rôles qui leur sont attribués.Connectez-vous et authentifiez-vous en tant qu'administrateur utilisateur
En utilisant le
mongo
shell, vous pouvez:Connectez-vous avec l'authentification en transmettant les informations d'identification de l'utilisateur, ou
Connectez-vous d'abord sans authentification, puis lancez la méthode db.auth () pour vous authentifier.
Pour s'authentifier pendant la connexion Démarrez un
mongo
shell avec les-u <username>, -p <password>, and the --authenticationDatabase <database>
options de ligne de commande:Pour s'authentifier après la connexion
Connectez la
mongo
coque aumongod
:Basculez vers la base de données d'authentification (dans ce cas, admin) et utilisez la méthode db.auth (,) pour vous authentifier:
la source