gpt4 book ai didi

mongodb - db.serverStatus() 在具有所有者权限的 mlab 上返回 "not authorized to execute command"

转载 作者:可可西里 更新时间:2023-11-01 09:54:01 25 4
gpt4 key购买 nike

我最近开通了一个免费的 mLab 帐户,我正试图通过 shell 访问我的数据库中打开的连接数。

当我在本地运行 mongodb 时,我的命令行从来没有遇到过问题,但现在什么都不管用了。

为了连接我这样做:

mongo ds127044.mlab.com:27044/db_name -u db_user -p db_password

它显示我已成功连接。

之后我运行:

db.serverStatus()

并得到:

{
"ok" : 0,
"errmsg" : "not authorized on admin to execute command { serverStatus: 1.0 }",
"code" : 13,
"codeName" : "Unauthorized"
}

但根据我的控制台,我被列为数据库的所有者:

{
"_id": "db_name.db_user",
"user": "db_user",
"db": "db_name",
"roles": [
{
"role": "dbOwner",
"db": "db_name"
}
]
}

是我在命令行中做错了什么,还是我的 mLab 帐户有什么特别之处?

最佳答案

似乎与您的用户角色有关。

此处所有文档:https://docs.mongodb.com/manual/reference/built-in-roles/#cluster-admin-roles/ (具体是cluesterMonitor信息)

说:

...The admin database includes the following roles for administering the whole system rather than just a single database...

在这份文件中https://docs.mongodb.com/manual/core/security-built-in-roles/

说:

Every database includes: Database Administration Roles... The admin database includes the following roles for administering the whole system: Cluster Administration Roles

serverStatus”被赋予 clusterMonitor 角色,所以..

尝试改变它:

roles: [ { role: "clusterMonitor", db: "admin" },
{ role: "dbOwner", db: "db_name" }]

祝你好运!

关于mongodb - db.serverStatus() 在具有所有者权限的 mlab 上返回 "not authorized to execute command",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47382603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com