功能级权限管理,众所周知使用RBAC(基于角色的访问模型)来控制。我建议使用基本RBAC实现权限控制便可,没有必要使用不少复杂的高级的权限模型。复杂的权限模型,一方面解析起来有难度;另外一方面用户使用起来难度大,也用很差。spa
数据级权限管理,我建议你们使用Ralasafe访问控制(数据级权限管理)中间件。Ralasafe使用策略来描述数据级权限,使用图形化方式对策略进行定制管理。一切都是开放的。中间件
在定制策略的时候,尤为是用户分类的时候,基本上全部初学者都把角色概念直接拿进来。直接使用角色来代替用户分类。通过调查发现,他们是这样考虑权限需求的:abc角色的人能查询xyz特征的数据,abc角色的人能操做xyz特征的数据。开发
起先,我也纳闷。他们的想法怎么和个人不同的。我感受到不对,但说不上来不对在那里。后来想清楚了:他们一句话既描述了功能级权限,又描述了数据级权限。咱们应该让IT开发商来设置数据级权限;功能级权限则应该上线后,由企业方自行设置。权限控制
由此分析,我逐步得出这样的分离原则:权限
功能级权限用角色来描述;数据级权限,用户分类来描述。数据