在mongodb版本2.4.9上为不同用户创建角色

时间:2014-04-01 21:32:22

标签: node.js mongodb mongohq

我是mongodb的新手,我正在尝试了解以及如何授予对我的数据库用户的访问权限(我有mongodb数据库来自mongoHQ沙箱512 Mb免费)。

从我的mongo shell

连接到我的mongodb后

我有一个名为 event 的数据库,它包含2个集合

  • 消息
  • 提供商

我创建了2个用户:

  • messageUser
  • providerUser

我想要的是:

  • 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

0 个答案:

没有答案