我应该向用户添加什么角色来解决下面的问题?
Unauthorized: not authorized on backend to execute command { aggregate: "activities", pipeline: [ { $indexStats: {} }, { $project: { name: 1, usageHost: "$host", usageCount: "$accesses.ops", usageSince: "$accesses.since" } } ], cursor: {} }
我正在使用以下脚本创建用户:
use $APPLICATION_DATABASE
db.createUser({user: '$APPLICATION_USER', pwd: '$APPLICATION_PASS', roles:[{role:'readWrite', db:'$APPLICATION_DATABASE'}]})
但是,当我尝试使用羽毛同步集成时,上面的错误被抛出。
我相信您可以授予:
clusterMonitor
将为用户提供仅阅读监视工具的访问,例如;
dbStats
indexStats
或者您可以创建自定义角色并将操作限制为单个集合:
use admin
db.createRole(
{
role: "CustomIndexStat",
privileges: [
{ resource: { db: "", collection: "" },
actions: [ "indexStats"]
} ],
roles: []
}
)