Usuario "root" MongoDB


¿Hay un usuario super UNIX como "root" para MongoDB? He estado mirando http://docs.mongodb.org/manual/reference/user-privileges / y han probado muchas combinaciones, pero todas parecen carecer en un área u otra. Seguramente hay un papel que está por encima de todos los que se enumeran allí.

Author: KARTHIKEYAN.A, 2013-11-21

5 answers

Mientras que fuera de la caja, MongoDB no tiene autenticación, puede crear el equivalente de un root/superusuario mediante el uso de los roles "any" a un usuario específico a la base de datos admin.

Algo como esto:

use admin
db.addUser( { user: "<username>",
          pwd: "<password>",
          roles: [ "userAdminAnyDatabase",
                   "dbAdminAnyDatabase",
                   "readWriteAnyDatabase"

] } )

Actualización para 2.6 +

Si bien hay un nuevo usuario root en la versión 2.6, es posible que no satisfaga sus necesidades, ya que todavía tiene algunas limitaciones:

Proporciona acceso a las operaciones y todos los recursos de la Base de datos de readWriteAnyDatabase, dbAdminAnyDatabase, userAdminAnyDatabase y Roles de clusterAdmin combinados.

Root no incluye ningún acceso a colecciones que comiencen con sistema. prefijo.

Actualización para 3.0 +

Use db.createUser como se eliminó db.addUser.

 69
Author: WiredPrairie,
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-02-26 15:54:23

El mejor rol de superusuario sería el root.La Sintaxis es:

use admin

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

Para más detalles mira roles integrados.

Espero que esto ayude !!!

 58
Author: JERRY,
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
2018-03-15 05:34:48

Administración de usuarios de Mongodb:

Lista de roles:

read
readWrite
dbAdmin
userAdmin
clusterAdmin
readAnyDatabase
readWriteAnyDatabase
userAdminAnyDatabase
dbAdminAnyDatabase

Crear usuario:

db.createUser(user, writeConcern)

db.createUser({ user: "user",
  pwd: "pass",
  roles: [
    { role: "read", db: "database" } 
  ]
})

Actualizar usuario:

db.updateUser("user",{
  roles: [
    { role: "readWrite", db: "database" } 
  ]
})

Drop user:

db.removeUser("user")

O

db.dropUser("user")

Ver usuarios:

db.getUsers();

Más información: https://docs.mongodb.com/manual/reference/security/#read

 17
Author: KARTHIKEYAN.A,
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-12-02 05:28:09

Hay un Roles de Superusuario: root, que es un Roles incorporado, puede satisfacer su necesidad.

 5
Author: ahyong,
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-05-27 04:01:36

"UserAdmin es efectivamente el rol de superusuario para una base de datos específica. Los usuarios con UserAdmin pueden otorgarse todos los privilegios. Sin embargo, UserAdmin no autoriza explícitamente a un usuario para ningún privilegio más allá de la administración de usuarios."desde el enlace que publicaste

 -1
Author: Lakmal Vithanage,
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
2013-11-21 09:52:34