我是mongodb的新手,我正在尝试了解以及如何授予对我的数据库用户的访问权限(我有mongodb数据库来自mongoHQ沙箱512 Mb免费)。
从我的mongo shell 连接到我的mongodb后
我有一个名为 event 的数据库,它包含2个集合
我创建了2个用户:
我想要的是:
messageUser 只能读取消息集合,并且无法读取,写入提供商集合
providerUser 只有提供商集合上的读取和写入权限以及消息集合上的读取权限
我找到db.addUser() - Version 2.4.9但我无法定义集合的权限
示例(从mongo shell成功连接到mongodb后):
use event
db.addUser( { user: "messageUser", pwd: "password", roles: ["read"] } )
但是messageUser stil有权阅读提供商集合
但我在最新版本2.6.x上找到了 db.addUser:[http://docs.mongodb.org/master/reference/method/db.addUser/#db.addUser]和 db.createRole:[http://docs.mongodb.org/master/reference/method/db.createRole/#db.createRole] 我们可以定义更多“复杂权限”,例如: 授予权限 messageUser ,仅对消息集合上的查找操作 特权行动:[http://docs.mongodb.org/master/reference/privilege-actions/]
db.addUser({
user: 'messageUser',
pwd: 'password',
privileges: [{
resource: {collection: "messages" },
actions: [ "find"]
}],
roles: [ "read"]
});
我还发现我们可以通过将用户添加到名为 amin 的数据库来定义用户权限 遗憾的是, MongoHQ 服务不允许访问此数据库
如果需要或者有些事情没有明确解释,请询问更多信息 如果我能很快得到一些有用的答案,那将非常有用
谢谢
的Dinesh