2015-05-19 3 views
4

Когда я пытаюсь получить информацию о реплике я получаю следующее сообщение об ошибке:Update пользователь роли: не авторизован на администратор, чтобы выполнить команду

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 

Я попытался выполнить команду с двумя следующими пользователями:

[ 
     { 
       "_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" 
         } 
       ] 
     } 
] 

Althought меня clusterAdmin роли работать с репликами, я попытался обновить роли mongoadmin читать локальную базу данных (как все роли предоставляются на администратор БД), но я получаю следующее сообщение об ошибке:

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 }" 
     } 
}) 
  • Что должно мне нужно иметь для того, чтобы получить полный доступ ко всем командам реплики в дополнение к clusterAdmin роли?
  • Если у любого из пользователей есть разрешения в admin db (mongoadmin is dbOwner), почему у меня нет разрешений для команды update?

ответ

6

я обновлял роли с неправильной командой здесь является правильным:

db.grantRolesToUser("mongoadmin", [{ role: "read", db: "local"}]) 

Теперь я могу проверить 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) 
Смежные вопросы