项目中需要设计一个权限系统的设计需求和需求

项目中需要设计一个权限系统的设计需求和需求

ACL的优点是可以直接为用户设置权限。 权限设置更加灵活,每个用户可以完全不同。 但是,这也增加了管理员设置权限的复杂性。 RBAC更方便用户管理。 这里我不会详细讨论两者之间的细节和比较。 网上有很多相关信息。

这就是我所做的。

设计要求:

1、按项目进行权限控制;

2、项目分为不同的组,如仪表组、DCS组等,每个组采用不同的系统模块;

3、每个组下有不同的岗位用户角色权限设计,如仪器选型、样品维护等,不同岗位的人员有不同的权限,可以使用组内相应系统模块下的不同功能。

第二个对应RBAC的Group,第三个对应RABC的Role。 这部分绘制了如下数据库ER图。

这种结构是通常介绍RBAC的常见结构,比较容易理解。 从ER图中可以看出,权限分配是基于角色的,这是RBAC的主要特点。 同时,从大量资料中可以看出,RBAC一般只能实现功能级别的权限控制,很难实现更细粒度的数据控制,比如行数据甚至字段操作的权限控制。

下面的需求困扰了我很长时间。

1、对于同一职位(角色)的不同人员(角色实例),可以查询该职位所有人员创建的数据,但只能修改或删除自己创建的数据;

2. 对于非您自己创建的数据,您只能访问数据的部分字段。

事实上,第1项是基于行数据的访问控制游戏开发素材,第2项是基于字段的访问控制。 为了满足这两项音效,添加了三个数据表,形成了下面的ER图。

“权限类别”数据表相当于一个枚举变量用户角色权限设计,包含项目、组、角色、个人四个值。 例如,“样本维护-删除-样本”(角色-操作-功能)的操作权限的权限类别属于“个人”,则一行样本数据只能由该数据的创建者删除; 如果数据为“角色”,则所有具有示例维护角色的人员都可以删除该数据。 这样就可以满足要求1。

以上只是我设计这个权限的初步想法。 它尚未被验证且尚未被编码。 欢迎贡献!

文章来源:http://sangei.iteye.com/blog/1909744