这是一个比其他概念上更多的问题。我想知道是否有最佳做法,我在哪里可以读到它,也不知道如何向Google提出要求。
我正在为mongodb数据库建模。假设我们有一个chair
集合,该集合必须与user
的集合分开保存,因为一把椅子可以由多个用户拥有和访问。这就提出了访问控制列表的问题。通常,在其他项目中,我习惯于定义用户集合的权限:
{
_id: 5ce3f94a6591bd5a3accd22e,
permissions: [
{
collection: 'chairs',
path: 'serialNumber',
allowedValues: /^AU-1234-.*/ig,
roles: ['read']
}
]
}
这样,我们可以授予用户访问其以serialNumber
开头的每把椅子的权限。
现在我想知道用允许的用户定义椅子是否不是更好的方法:
1234
这与UNIX文件系统更相似,在该文件系统中,任何文件都有其所有者和组,并且每个用户可以属于多个组。在mongodb中有意义吗?
我已经看到{
_id: ...,
serialNumber: 'AU-1234-567',
allowedUsers: [{
user: 5ce3f94a6591bd5a3accd22e,
roles: ['read'],
},
... ]
}
模块保留了单独的集合,以便授予用户对资源的访问权限,但它似乎是一个杀手级的解决方案,难以维护。有什么建议还是acl
。