有了数据对象(what)之后,接下来我们需要思考的是:谁可以访问、编辑、删除哪些数据?
基于角色的权限控制
许多IT信息系统都会采用行业通用的「基于角色的访问控制(RBAC)」模式,也就是通过“角色 → 权限”进行间接授权。这样,管理员无需为每一个用户单独设置权限,只需定义好“角色”,并将用户归入对应角色,即可统一控制访问规则。
例如:
-
我们可以设置“销售员”“主管”等角色。
-
然后设置:
-
销售员角色可以新增和查看客户记录,但不能删除。
-
主管角色则可以查看全部销售数据。
-
最后,将对应人员,分别加入对应角色。
权限的不同层级:
模块级权限
在定义角色的应用访问权限时,比较粗略的层级是模块级的权限,比如对于某个表单、页面的访问权限。
例如:
销售员角色可访问“客户表”,但无法访问“合同表”或“财务表”。
记录级权限
即使拥有访问某个表的权限,仍可以进一步控制用户只能访问属于自己的数据。最常见的策略是通过设置数据拥有者字段来实现。
例如:
客户表中的每条记录都有一个“客户负责人”字段,虽然所有销售员都能访问“客户表”,但每个销售只能看到“自己负责的客户”,而主管则可以查看所有客户。
字段级权限
在HAP中,还能实现更加精细的字段级权限控制,即对同一条记录的不同字段内容的访问控制。
例如:
在项目管理中,对于同一个项目,项目成员可以查看项目基本信息,只有项目经理才可以看到项目金额和项目预算信息。