在Mongo上未经授权

时间:2018-02-06 20:22:55

标签: node.js mongodb cursor roles feathersjs

我需要向用户添加什么角色来解决下面的问题?

Unauthorized: not authorized on backend to execute command { aggregate: "activities", pipeline: [ { $indexStats: {} }, { $project: { name: 1, usageHost: "$host", usageCount: "$accesses.ops", usageSince: "$accesses.since" } } ], cursor: {} }

我正在使用following script创建用户:

use $APPLICATION_DATABASE
db.createUser({user: '$APPLICATION_USER', pwd: '$APPLICATION_PASS', roles:[{role:'readWrite', db:'$APPLICATION_DATABASE'}]})

但是当我尝试使用feathers-sync进行集成时,会抛出上面的错误。

1 个答案:

答案 0 :(得分:0)

我相信你可以批准:

clusterMonitor

这将为用户提供对监视工具的只读访问权限,例如;

dbStats
indexStats

或者您可以创建自定义角色并将操作限制为单个集合:

use admin
db.createRole(
   {
   role: "CustomIndexStat",
   privileges: [
    { resource: { db: "", collection: "" }, 
      actions: [ "indexStats"] 
    } ],
     roles: []
   }
)