Une MongoDB “userAdminAnyDatabase” l'utilisateur ne peut pas admin utilisateurs dans la “base de données”. Pourquoi?
C'est un userAdmin
vs userAdminAnyDatabase
question.
Dans le system.users
j'ai la suite des utilisateurs (mot de passe 1234
pour les deux):
> db.system.users.find()
{ "_id" : ObjectId("52a976cb7851682aa44d6d4d"), "user" : "admin_one", "pwd" : "884f516cf308a4c6a75bbc5a0a00807b", "roles" : [ "userAdmin", "dbAdmin" ] }
{ "_id" : ObjectId("52a97c697851682aa44d6d4f"), "user" : "admin_two", "pwd" : "26e7bb644e5919461cd6ba7403dc6906", "roles" : [ "userAdminAnyDatabase", "dbAdminAnyDatabase" ] }
De le connecter avec un utilisateur incorrect:
$ mongo mono -u admin -p 1234
connecting to: mono
Thu Dec 12 10:09:00.733 Error: 18 { code: 18, ok: 0.0, errmsg: "auth fails" } at src/mongo/shell/db.js:228
qui est OK.
De la connexion à la db admin:
$ mongo mono -u admin_one -p 1234
connecting to: mono
> db.system.users.find()
{ "_id" : ObjectId("52a976cb7851682aa44d6d4d"), "user" : "admin_one", "pwd" : "884f516cf308a4c6a75bbc5a0a00807b", "roles" : [ "userAdmin", "dbAdmin" ] }
{ "_id" : ObjectId("52a97c697851682aa44d6d4f"), "user" : "admin_two", "pwd" : "26e7bb644e5919461cd6ba7403dc6906", "roles" : [ "userAdminAnyDatabase", "dbAdminAnyDatabase" ] }
qui est aussi OK.
Maintenant, la connexion avec le "AnyDatabase" admin j'obtiens une erreur:
$ mongo mono -u admin_two -p 1234
connecting to: mono
> db.system.users.find()
error: { "$err" : "not authorized for query on mono.system.users", "code" : 16550 }
Pourquoi?
OriginalL'auteur Gabriel Petrovay | 2013-12-12
Vous devez vous connecter pour publier un commentaire.
Il semble que vous êtes en essayant de répartir les
userAdminAnyDatabase
rôle sur lamono
base de données, pas la la {{admin}} de la base de données. Le "anyDatabase" les rôles ne sont disponibles que pour les utilisateurs qui s'authentifient à l'admin
base de données.Voir la documentation de la anyDatabase Rôles pour plus d'informations.
OriginalL'auteur tychoish
J'ai couru les mêmes problèmes après la création de l'utilisateur admin dans mongodb.
Vous voudrez peut-être vérifier:
ce
peut aider à
Utilisateurs rôles expliqué: http://docs.mongodb.org/manual/reference/method/db.grantRolesToUser/#db.grantRolesToUser
userAdminAnyDatabase et userAdmin ne pas autoriser explicitement un utilisateur pour aucun privilège au-delà de l'administration de l'utilisateur.
Vous devrez aussi ajouter le "clusterAdmin" le rôle de la liste des bases de données de commande: http://docs.mongodb.org/manual/reference/user-privileges/#clusterAdmin
Si vous voulez vous utilisateur de lire/écrire à partir de la base de données et des collections, vous aurez besoin d'ajouter un autre rôle, le "readWrite"
En outre, vous voudrez peut-être vérifier votre mongod terminal pour voir ce que les erreurs apparaissent dans le dos.
Bonne chance,
OriginalL'auteur one_of_many