J'ai commencé à utiliser MongoDB avec authentification. Selon la documentation, j'ai utilisé l'exception localhost pour créer un utilisateur administrateur avec le rôle unique de userAdminAnyDatabase . Tout s'est bien passé. Quand j'exécute le client "mongo" et que j'autorise contre l'admin base de données après utilisation cette base de données, j'obtiens le numéro 1 indiquant que l'autorisation a réussi. Cependant, toute commande que j'essaie d'exécuter entraîne une erreur "non autorisée", même en essayant d'afficher les collections dans la base de données d'administration que je viens d'autoriser.
Quelqu'un peut-il me dire pourquoi c'est et comment je peux le réparer? Actuellement, je cours sans authentification jusqu'à ce que je puisse résoudre ce problème.
Réponse acceptée :
La userAdminAnyDatabase
rôle (et le rôle userAdmin
rôle dont il est une extension) donne simplement à votre utilisateur la permission de lire et d'écrire dans le system.users
collection pour administrer les utilisateurs d'une base de données. Il ne permet pas à l'utilisateur de lire ou d'écrire dans les collections réelles de la base de données. Pour cela, vous devez accorder le read
ou readWrite
rôles.
Voir Rôles de privilège d'utilisateur dans MongoDB et Ajouter un utilisateur à une base de données.