Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用NoSQL数据库与SQL数据库创建ACL模块_Mysql_Database_Permissions_Acl_Nosql - Fatal编程技术网

Mysql 使用NoSQL数据库与SQL数据库创建ACL模块

Mysql 使用NoSQL数据库与SQL数据库创建ACL模块,mysql,database,permissions,acl,nosql,Mysql,Database,Permissions,Acl,Nosql,我需要为我正在使用的系统编写一个ACL模块。 我以前写过ACL,但我总觉得它会更有效率 由于我没有太多地使用NoSQL数据库,并且我正在认真考虑将它们用于它具有优势的目的——我想听听您的意见,ACL模块是否是这种情况下的一个好例子 ACL应由ARO(访问请求对象-如站点成员)、ACO(访问控制对象-如站点中项目的操作)组成。[例如:查看产品编号2]) 两者都应该分组为一棵树,这样我就可以有一组成员和一组产品 我最近的实现使用了一组定义的权限(每个权限都有自己的编号),这些权限通过按位OR操作组合

我需要为我正在使用的系统编写一个ACL模块。 我以前写过ACL,但我总觉得它会更有效率

由于我没有太多地使用NoSQL数据库,并且我正在认真考虑将它们用于它具有优势的目的——我想听听您的意见,ACL模块是否是这种情况下的一个好例子

ACL应由ARO(访问请求对象-如站点成员)、ACO(访问控制对象-如站点中项目的操作)组成。[例如:查看产品编号2])

两者都应该分组为一棵树,这样我就可以有一组成员和一组产品

我最近的实现使用了一组定义的权限(每个权限都有自己的编号),这些权限通过按位OR操作组合成一个数字来设置ARO的权限级别

例如:如果
view=1,modify=2,delete=4,用户#1可以查看和删除对象#3,那么数据库中将有这一行(在我的例子中是mysql db):

为了获得用户的完整权限层次结构,我创建了一个递归连接查询(同时指定我支持的最大深度),然后检查ARO路径中指向树根的所有对象的权限定义

我现在看到了一种有趣的方法,可以消除中joins部分的需要

回到我的问题-

在NoSQL中,数据被保存为对象,这些对象可以是“开箱即用”的树数据结构,因此在这种结构中至少有组层次结构似乎更合理

对于最高效、最通用的ACL系统,您认为什么是更好的解决方案

|  user_id   |   object_id   |    level   |
===========================================
|     1      |      3        |      5     |