Crear Superusuario en mongo


Estoy intentando crear un usuario en mongo que pueda hacer cualquier cosa en cualquier bd.

De acuerdo con la guía, creé un nuevo administrador: http://docs.mongodb.org/manual/tutorial/add-user-administrator

Este es el código:

use admin
db.addUser( { user: "try1",
              pwd: "hello,
              roles: [ "userAdminAnyDatabase" ] } )

Luego detuve mongo, habilité la autenticación y reinicié mongo.

Luego intenté crear una base de datos con su usuario.

De acuerdo con esta guía: http://www.mkyong.com/mongodb/how-to-create-database-or-collection-in-mongodb /

use fragola 
db.users.save( {username:"fragolino"} )

Y consigo esto: "no autorizado para insertar en fragola.usuarios "

¿Alguien puede ayudarme?

Author: Community, 2014-03-25

2 answers

El rol userAdminAnyDatabase le da al usuario la capacidad de crear usuarios y asignarles roles arbitrarios. Debido a esto, ese usuario tiene el poder de hacer cualquier cosa en la base de datos, porque puede dar cualquier permiso a cualquiera (incluyéndose a sí mismo).

Sin embargo, el rol userAdminAnyDatabase por sí solo no permite al usuario hacer otra cosa más que asignar derechos arbitrarios a usuarios arbitrarios. Para hacer algo realmente en la base de datos, ese usuario necesita tener los siguientes roles adicionales:

readWriteAnyDatabase
dbAdminAnyDatabase
clusterAdmin

A usuario que tiene los tres derechos anteriores y userAdminAnyDatabase es un verdadero super-usuario y puede hacer cualquier cosa.

 41
Author: drmirror,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-25 15:28:37

De docs. mongodb. org-superuser-roles

Permite escribir una respuesta que parece simple y también fácil de implementar

Pasos:

1 : sudo apt-get install mongodb-org - en la nueva terminal

2 : sudo mongod --port 27017 --dbpath /var/lib/mongodb

3 : mongo --port 27017 - en la nueva terminal

4 : use admin

5: Como @drmirror dijo un usuario debe tener todos 4 roles para ser superusuario

Para Mongo Versión 2.

db.createUser(
{
    user: "tom",
    pwd: "jerry",
    roles: [
              { role: "userAdminAnyDatabase", db: "admin" },
              { role: "readWriteAnyDatabase", db: "admin" },
              { role: "dbAdminAnyDatabase", db: "admin" },
              { role: "clusterAdmin", db: "admin" }
           ]
})

Para Mongo Version 3.

db.createUser(
   {
       user: "tom", 
       pwd: "jerry", 
       roles:["root"]
   })

6 : sudo /etc/init.d/mongod stop O sudo service mongod stop - en la nueva terminal

7 : sudo /etc/init.d/mongod start O sudo service mongod start

8 : restart your pc

9 : sudo mongod --auth --port 27017 --dbpath /var/lib/mongodb - en la nueva terminal

10: mongo --port 27017 -u "tom" -p "jerry" --authenticationDatabase "admin" - en la nueva terminal

Nota : el paso 10 es el paso más importante .

dará salida en terminal como

MongoDB shell version: 2.6.11
connecting to: 127.0.0.1:27017/test
>
 43
Author: vijay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-05 07:45:09