具有内置"read"角色的用户仍然能够在mongodb 5.0.8中编写/更新文档



我有一个MongoDB v5.0.8与多个数据库运行。我切换到所需的数据库(排行榜-db)然后在mongo shell中使用以下命令添加一个新用户:

切换到所需的DB:

use leaderboard-db

创建新用户:

db.createUser({ user: "aa", pwd: "leaderboardadmin#@!", roles: [ { role: "read", db: "leaderboard-db" } ], mechanisms: [ "SCRAM-SHA-256" ]})

用户创建成功,可以通过命令

验证show users

反应:

{
"_id" : "leaderboard-db.aa",
"userId" : UUID("f571db84-cae4-4aac-b2f9-83b57094dd1b"),
"user" : "aa",
"db" : "leaderboard-db",
"roles" : [
{
"role" : "read",
"db" : "leaderboard-db"
}
],
"mechanisms" : [
"SCRAM-SHA-256"
]
}

然后使用Studio 3T与用户"aa"连接到MongoDB。我应该只能读取(排行榜-db)中的文档;但是,我也可以修改文档。

更新截图

有谁能帮忙解决这个问题吗?

我想只允许用户阅读文档"aa"。用户"aa"不能有写权限

感谢杰克

根据@WernfriedDomscheit的建议,我需要启用身份验证。我通过更新/etc/mongod.conf文件,取消Security部分的注释,添加Authorization: enabled并通过service mongod restart重新启动MongoDB来做到这一点

这样我就可以创建具有不同角色访问权限的用户了。

生活又美好了。

最新更新