mongodb - usa - Usuario de la función de actualización: no está autorizado en el administrador para ejecutar el comando
crear una coleccion en mongodb (1)
Cuando intento obtener información sobre la réplica, aparece el siguiente error:
rep0:PRIMARY> rs.printReplicationInfo()
2015-05-19T13:30:29.231+0200 error: {
"$err" : "not authorized for query on local.system.namespaces",
"code" : 13
} at src/mongo/shell/query.js:131
Intenté ejecutar el comando con los dos siguientes usuarios:
[
{
"_id" : "admin.siteRootAdmin",
"user" : "siteRootAdmin",
"db" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
},
{
"_id" : "admin.mongoadmin",
"user" : "mongoadmin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
},
{
"role" : "dbOwner",
"db" : "admin"
},
{
"role" : "clusterAdmin",
"db" : "admin"
}
]
}
]
Aunque tengo la función clusterAdmin
para trabajar con réplicas, he intentado actualizar roles de mongoadmin para leer la base de datos local (ya que todos los roles se otorgan en admin db) pero me da el siguiente error:
rep0:PRIMARY> db.system.users.update({"user":"mongoadmin"},{$addToSet:{"roles":"readAnyDatabase"}})
WriteResult({
"writeError" : {
"code" : 13,
"errmsg" : "not authorized on admin to execute command { update: /"system.users/", updates: [ { q: { user: /"mongoadmin/" }, u: { $addToSet: { roles: /"readAnyDatabase/" } }, multi: false, upsert: false } ], ordered: true }"
}
})
- ¿Qué se supone que necesito tener para tener acceso completo a todos los comandos de réplica, además del rol
clusterAdmin
? - Si alguno de los dos usuarios tiene permisos en admin db (mongoadmin es dbOwner), ¿por qué no tengo permisos para el comando de actualización?
Estaba actualizando roles con el comando incorrecto; aquí está el correcto:
db.grantRolesToUser( "mongoadmin", [{ role: "read", db: "local"}])
Ahora puedo verificar el replicainfo:
rep0:PRIMARY> rs.printReplicationInfo()
configured oplog size: 990MB
log length start to end: 617347secs (171.49hrs)
oplog first event time: Thu May 14 2015 14:25:04 GMT+0200 (CEST)
oplog last event time: Thu May 21 2015 17:54:11 GMT+0200 (CEST)
now: Thu May 21 2015 17:54:24 GMT+0200 (CEST)