【问题标题】:How to enable free monitoring in mongodb if access control is enabled?如果启用了访问控制,如何在mongodb中启用免费监控?
【发布时间】:2020-08-10 15:31:41
【问题描述】:

我想在 AWS 上运行的 MongoDB 独立实例上启用免费监控。我在启用访问控制之前执行过。启用后,当我尝试时

db.enableFreeMonitoring()

它返回以下错误。

未捕获的异常:错误:命令失败:{ “好”:0, "errmsg" : "管理员未授权执行命令 { setFreeMonitoring: 1.0, action: "enable", lsid: { id: UUID("0483e6c8-4d96-4eae-9967-608838f07f42") }, $db: "admin" }", “代码”:13, “代号”:“未经授权” }:

根据文档,我已授予管理员clusterMonitor 角色。还是一样的错误。有没有其他办法?

【问题讨论】:

  • 检查 db.connectionStatus() 以检查当前角色。
  • @Joe TypeError: db.connectionStatus 不是函数
  • 抱歉,这个命令应该像db.runCommand("connectionStatus")一样运行
  • @Joe,谢谢。它表明已应用 clusterMonitor 角色。 "authenticatedUserRoles" : [ { "role" : "clusterMonitor", "db" : "admin" },
  • 您是否使用了文档中提到的所需命令行选项或配置设置?

标签: mongodb


【解决方案1】:

我通过赋予用户角色 root

来启用监控
use admin;
db.grantRolesToUser('admin', [{ role: 'root', db: 'admin' }]);

在为用户分配“root”权限之前,您可能需要考虑清楚这一点。 我相信 dbOwner 和 adminUser 角色也可以完成相同的任务,尽管我没有尝试过。 这是文档的链接Role-Aased Access Control

【讨论】:

  • root 不应该是必需的,因为 the docs 声明 clusterMonitor 角色应该提供足够的权限。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-11
  • 1970-01-01
相关资源
最近更新 更多