2017-08-09 2 views
2

J'essaie de configurer l'authentification mongo basée sur les certificats, généralement cela fonctionne bien, mais il y a une question pour laquelle je ne trouve pas de réponse. Supposons que je créé un utilisateur dans la base de données externe $:

use $external 
db.createUser({user: "[email protected],CN=jsmith,OU=Mongo Admins,O=Initech,C=US", 
       roles: [{"role" : "root","db" : "admin"}] 
}) 

Q: Comment puis-je interroger le contenu de la base de données externe $, en particulier les données des utilisateurs?

Y at-il de façon similaire à:

use admin 
db.system.users.find() 

Répondre

4

La base de données « $ externe » n'est pas une véritable base de données, et il ne contient aucune donnée. Toutes les données des utilisateurs et des rôles pour toutes les bases de données sont stockées dans admin.system.users ou admin.system.roles.

La solution préférée consiste à utiliser le getUsers command.

Dans le shell, vous taperez les déclarations suivantes:

use $external 
db.getUsers() 

Si vous disposez des privilèges appropriés, vous pouvez également interroger admin.system.users pour trouver les utilisateurs pour toute base de données, comme suit:

use admin 
db.system.users.find({db: "$external"}) 
+0

Aha, ça marche! Merci pour votre aide et le lien vers la documentation. – wilu