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?
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.
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
>
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