我是mongodb的新手。
我正在尝试了解用户权限如何在mongodb上运行 我有一个mongodb数据库(来自mongoHQ沙箱512 Mb免费)。
我也创建了一个数据库,它包含一些集合 这里看起来像是什么
这是我的数据库事件及其集合(消息,* 提供商 *)
- messages
- provider
我想要的是: 我有3个用户在事件数据库的不同集合
上拥有3种不同的权限这里有3位拥有特权的用户
providerUser :提供商集合上的只读访问权限,并且没有访问事件数据库的其他集合(并且也无权访问其他数据库)
eventreadUser :对事件数据库中的消息集合进行只读访问,并且无法访问事件数据库中的其他集合(并且具有也无法访问其他数据库)
eventreadWriteUser :仅对事件数据库中的消息集合具有读取,写入权限,并且无法访问事件中的其他集合数据库(并且也无法访问其他数据库)
所以我创建了一个将这些用户添加到事件数据库
的javascriptaddUsers.js
var conn = new Mongo('hostname:port');
var db = conn.getDB("events");
// For authentification on DB
db.auth('username', 'password');
function addCurlUserAndroidUser() {
var providerUser = {
user: 'providerUser',
pwd: 'providerUserPassword',
privileges: [{
resource: {collection: "provider" },
actions: [ "find"]
}],
roles: [ "read"]
};
var eventreadUser = {
user: 'eventreadUser',
pwd: 'eventreadUserPassword',
privileges: [{
resource: { collection: "messages" },
actions: [ "find"]
}],
roles: [ "read"]
};
var eventreadWriteUser = {
user: 'eventreadWriteUser',
pwd: 'eventreadWriteUserPassword',
privileges: [{
resource: { collection: "messages" },
actions: [ "find", "insert","remove","update"]
}],
roles: [ "readWrite"]
};
db.addUser(eventreadUser);
db.addUser(providerUser);
db.addUser(eventreadWriteUser);
}
我按照以下命令行执行此javascript:
mongo hostname:port/events addUsers.js
问题 providerUser 有权阅读消息集合 和 eventreadUser , eventreadWriteUser 也可以访问阅读提供商集合
如果需要或者有些事情没有明确解释,请询问更多信息 如果我能很快得到一些有用的答案,那将非常有用
谢谢你 迪内希