db.serverStatus() 未被管理员授权执行命令

use*_*364 5 mongodb

我的 mongo 版本:2.6.11
我想检查db.serverStatus()我的robomomgo
但得到了 errmsg:

{
    "ok" : 0,
    "errmsg" : "not authorized on admin to execute command { serverStatus:   1.0 }",
    "code" : 13
}
Run Code Online (Sandbox Code Playgroud)

如何添加授权??

我发现一个命令可以创建具有授权的用户:

db.createUser(
    {
      user: "tester",
      pwd: "password",
      roles: [             
         { role: "readWrite", db: "test" }
      ]
    }
);
Run Code Online (Sandbox Code Playgroud)

但我不知道哪个是db.serverStatus()数据库名??
怎么授权??

Ale*_*lex 11

您需要将clusterMonitor角色授予运行db.serverStatus命令的用户。您可以通过调用 `grantRolestoUser 将这个角色授予用户。

是其他 clusterMonitor 角色的列表

use admin

db.createUser(
    {
      user: "clustermonitor",
      pwd: "password",
      roles: [             
         { role: "readWrite", db: "admin" }
      ]
    }
);

db.grantRolesToUser(
  "clusterMonitor",
   [
     { role: "clusterMonitor", db:"admin"} 
   ]
);
Run Code Online (Sandbox Code Playgroud)