Mysql 使用NoSQL数据库与SQL数据库创建ACL模块
我需要为我正在使用的系统编写一个ACL模块。 我以前写过ACL,但我总觉得它会更有效率 由于我没有太多地使用NoSQL数据库,并且我正在认真考虑将它们用于它具有优势的目的——我想听听您的意见,ACL模块是否是这种情况下的一个好例子 ACL应由ARO(访问请求对象-如站点成员)、ACO(访问控制对象-如站点中项目的操作)组成。[例如:查看产品编号2]) 两者都应该分组为一棵树,这样我就可以有一组成员和一组产品 我最近的实现使用了一组定义的权限(每个权限都有自己的编号),这些权限通过按位OR操作组合成一个数字来设置ARO的权限级别 例如:如果Mysql 使用NoSQL数据库与SQL数据库创建ACL模块,mysql,database,permissions,acl,nosql,Mysql,Database,Permissions,Acl,Nosql,我需要为我正在使用的系统编写一个ACL模块。 我以前写过ACL,但我总觉得它会更有效率 由于我没有太多地使用NoSQL数据库,并且我正在认真考虑将它们用于它具有优势的目的——我想听听您的意见,ACL模块是否是这种情况下的一个好例子 ACL应由ARO(访问请求对象-如站点成员)、ACO(访问控制对象-如站点中项目的操作)组成。[例如:查看产品编号2]) 两者都应该分组为一棵树,这样我就可以有一组成员和一组产品 我最近的实现使用了一组定义的权限(每个权限都有自己的编号),这些权限通过按位OR操作组合
view=1,modify=2,delete=4,用户#1可以查看和删除对象#3,那么数据库中将有这一行(在我的例子中是mysql db):
为了获得用户的完整权限层次结构,我创建了一个递归连接查询(同时指定我支持的最大深度),然后检查ARO路径中指向树根的所有对象的权限定义
我现在看到了一种有趣的方法,可以消除中joins部分的需要
回到我的问题-
在NoSQL中,数据被保存为对象,这些对象可以是“开箱即用”的树数据结构,因此在这种结构中至少有组层次结构似乎更合理
对于最高效、最通用的ACL系统,您认为什么是更好的解决方案
| user_id | object_id | level |
===========================================
| 1 | 3 | 5 |