Mongodb用户权限只读问题

时间:2018-02-12 09:31:29

标签: mongodb

我在Mongodb中遇到了权限问题

> use test
switched to db test
> db.createUser(
...   {
...     user: "tester",
...     pwd: "123456",
...     roles: [ { role: "readWrite", db: "test" },
...              { role: "read", db: "TestHPO" } ]
...   }
... );
Successfully added user: {
        "user" : "tester",
        "roles" : [
                {
                        "role" : "readWrite",
                        "db" : "test"
                },
                {
                        "role" : "read",
                        "db" : "TestHPO"
                }
        ]
}
> db.auth("tester", "123456" )
1
> use TestHPO
switched to db TestHPO
> db.createCollection("mycollection");
{ "ok" : 1 }

测试用户只拥有TestHPO数据库的读取权限,但可以在上面的示例中创建和删除该集合。

这应该是只读的,这意味着只需查找,我的代码问题在哪里?

3 个答案:

答案 0 :(得分:0)

您没有使用访问控制。

来自https://docs.mongodb.com/manual/tutorial/enable-authentication/#re-start-the-mongodb-instance-with-access-control

  

使用--auth命令行选项重新启动mongod实例,或者,如果使用配置文件,则使用security.authorization设置重新启动。

答案 1 :(得分:0)

关注Add Users - tutorial

另一种方式。您应该再次切换到数据库TestHPO和createUser。

答案 2 :(得分:0)

使用以下身份验证属性为mongo db更新/创建配置文件: 安全:    授权:已启用 setParameter:    身份验证机制:MONGODB-CR

使用--auth和--config重新启动mongodb: mongod --auth --config C:\ data \ conf \ mongod.conf

如果用户名或密码包含冒号(:)或符号(@),则必须对其进行数字编码,否则会引发异常。