Empecé a usar MongoDB con autenticación. Según la documentación, utilicé la excepción localhost para crear un usuario administrador con la función única de userAdminAnyDatabase . Todo salió bien. Cuando ejecuto el cliente "mongo" y autorizo contra el admin base de datos después de usar esa base de datos obtengo el número 1 indicando que la autorización tuvo éxito. Sin embargo, cualquier comando que intento ejecutar da como resultado un error "no autorizado", incluso tratando de mostrar las colecciones en la base de datos de administración que acabo de autorizar.
¿Alguien puede decirme por qué es esto y cómo puedo solucionarlo? Actualmente estoy funcionando sin autenticación hasta que pueda arreglar esto.
Respuesta aceptada:
El userAdminAnyDatabase
rol (y el userAdmin
rol del que es una extensión) simplemente le da a su usuario el permiso para leer y escribir en system.users
colección para administrar los usuarios de una base de datos. No permite al usuario leer o escribir en las colecciones reales de la base de datos. Para eso, debe otorgar la read
o readWrite
papeles.
Consulte Roles de privilegios de usuario en MongoDB y Agregar un usuario a una base de datos.