我正在使用 MongoDB 3.0.7。我有一个名为 bravegoat
的数据库和一个名为 bravegoat-r
的只读用户。
我通过 shell 连接:
mongo localhost:27017/bravegoat -u bravegoat-r -p mypassword
我切换到我的数据库:
use bravegoat;
然后我跑:
db.runCommand({connectionStatus : 1})
哪些输出:
{
"authInfo" : {
"authenticatedUsers" : [
{
"user" : "bravegoat-r",
"db" : "bravegoat"
}
],
"authenticatedUserRoles" : [
{
"role" : "read",
"db" : "bravegoat"
}
]
},
"ok" : 1
}
只有 read
角色,所以看起来不错,但是当我调用 .save()
时,我的用户可以插入数据。我已经阅读了几页有关创建只读用户的内容,但看不到我的问题。我开始认为这可能是我的版本中的错误。
最佳答案
您必须通过执行以下操作来启用客户端访问控制:
- 编辑
/etc/mongod.conf
文件 - 添加以下几行
安全性:
授权:已启用
- 重启 MongoDB:
sudo service mongodb restart
关于mongodb - 我的只读用户可以写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33948761/