我在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数据库的读取权限,但可以在上面的示例中创建和删除该集合。
这应该是只读的,这意味着只需查找,我的代码问题在哪里?
答案 0 :(得分:0)
您没有使用访问控制。
使用--auth命令行选项重新启动mongod实例,或者,如果使用配置文件,则使用security.authorization设置重新启动。
答案 1 :(得分:0)
答案 2 :(得分:0)
使用以下身份验证属性为mongo db更新/创建配置文件: 安全: 授权:已启用 setParameter: 身份验证机制:MONGODB-CR
使用--auth和--config重新启动mongodb: mongod --auth --config C:\ data \ conf \ mongod.conf
如果用户名或密码包含冒号(:)或符号(@),则必须对其进行数字编码,否则会引发异常。