Python,Pymongo:为具有只读权限的数据库创建用户
我正在尝试为数据库创建一个具有只读访问权限的用户,Python,Pymongo:为具有只读权限的数据库创建用户,python,pymongo,Python,Pymongo,我正在尝试为数据库创建一个具有只读访问权限的用户, 我尝试了以下方法 from pymongo import MongoClient mongo=MongoClient() mongo.test.command("createUser", "testing", pwd="testing", roles=["read"]) 然后我认证 mongo.test.authenticate('testing', 'testing') 但是,如果我尝试插入文档,它实际上会插入: mongo.test.t
我尝试了以下方法
from pymongo import MongoClient
mongo=MongoClient()
mongo.test.command("createUser", "testing", pwd="testing", roles=["read"])
然后我认证
mongo.test.authenticate('testing', 'testing')
但是,如果我尝试插入文档,它实际上会插入:
mongo.test.test.insert_one({'name':'vincent'})
命令mongo.test.command(“usersInfo”)
返回
{'ok': 1.0,
'users': [{'_id': 'test.testing',
'db': 'test',
'roles': [{'db': 'test', 'role': 'read'}],
'user': 'testing'}]}
这似乎表明用户已正确创建。
如果只读用户的插入请求被拒绝,我应该如何创建该用户并向其进行身份验证?
谢谢你的回答。其他问题:是否可以创建对所有数据库都具有特定权限的用户?而不是基于每个数据库?尽管这可能违背安全最佳实践。你可以,太棒了!现在它起作用了。最后一个问题:现在我用
mongo.admin.command(“createUser”,“man”,pwd=“man”,roles=[“readWriteAnyDatabase]”)创建了一个对所有数据库都具有读/写权限的用户。
。我可以使用该用户与MongoClient('mongodb://%s:%s@127.0.0.1“%('man','man'))
。所有这些都有效。现在我想为这个新连接创建一个测试。我将MongoClient分配给变量名mongo
。是否有显示用户名和角色的mongo
属性?我知道我可以从mongo.adminsystem.users
中看到,但是我可以在mongoclient实例上看到它吗?您可以运行一个例如mongo.admin.command('connectionStatus')
mongod --auth --config <config_path>
security:
autorization: enabled
systemLog:
destination: file
path: /usr/local/var/log/mongodb/mongo.log
logAppend: true
storage:
dbPath: /usr/local/var/mongodb
net:
bindIp: 127.0.0.1