关于权限设计

     权限设计是我们软件开发人员一个绕不开的话题,我们都希望做出最完善的权限系统 ,抽象成模块 ,以后别的系统用上 ,就直接套用就是。最近也一直学习这方面的东西,自己也做了一个 ,用在了项目中 ,可是总是觉得不太满意 ,感觉不太通用 ,以后不再改动 ,因为一直在网上不停的寻找 ,眼睛痛了 ,越看越糊涂 ,越没头绪。张三丰教无忌武学招式 ,最高境界是没有招式了 ,莫非。。。

    现在最主流的权限控制思想就是RBAC  即基于角色的权限管理系统 。当然在有JAVA 里面有一个A.. 听说不错 。asp.net 有一个开源的权限管理系统 ,就是基于RBAC 思想的 ,应该是一个得WEB 系统应该够了 。追求完美 ,是每个理想主义者的通病 ,很多时候会把事情复杂化 ,真正的伟大的人物是把事情简单化 ,他们对事物在他们脑海中以经过被他们的思想过滤了 ,我们一般的人达不到他们的高度的。怎么才能做出一个完美的权限系统呢 ? 是不是可以再完善RBAC 呢 ? 一次无意中,突发灵感 。现在企业的存在形式的分三流九教的,当人社会就是一个等级社会 ,但是企业的存在形式中 ,等级思想更为突出 ,普通员工上面是班长、组长,这技术一种角色 ,再往上技术经理 ,然后就是总裁。。。 当然很复杂 。既然我们做的系统一般是为我们的企业服务的 ,而企业的形式就是等级思想 ,所以现在RBAC 就自然而然是主流了 ,当然军事方面等的权限管理就有别于企业了 ,他们对权限管理更加严格 ,也许自主控制比较适合 。但RBAC 就够了吗?角色是对企业的一种水平划分方式 ,我们的部门啊什么的是一种垂直划分方式啊 ,怎么表现同一部门的员工的权限呢?又怎么让财务部的只能查看财务部的数据 ,人事部只能查看人事部的数据呢。在这里我觉得我们需要对权限与业务区分开来 ,财务部员工只能查看财务部门数据就是业务了 ,要做一套包含业务的权限系统 ,至少现在没碰到过 。同一部门员工拿怎么表示他们的权限呢?怎么表示企业的垂直划分呢? 想到了GROUP ,就是把一个一个部门的员工划分到一个组中 ,然后把一个组赋予某个角色  ,最终还是回到角色,只是避免了一个一个赋值 。既然企业的存在形式即被水平划分了 ,又被垂直划分了 ,当然我们的权限应该就很好的表示了。当然这里还是有二个问题 ,首先这样一来角色 ,模块划分就需要好好考虑 ,最后划分下来角色应该会比较多 。第二 就是现在这样的权限系统只能表示一个系统 ,当个企业 ,怎么表示一个企业群系统呢 ,就是一个集团的统一权限管理 ,关于这个 ,最近发现一篇关于企业集的权限管理的文章 ,下载不了 ,都付费 ,正在挣扎 。

     以上是个人的看法 ,欢迎讨论 ,最近正在做一个连锁方面的项目 ,总公司  华中地方公司  分店。。。 比较复杂 ,正在改善权限设计 ,哈哈 ,应该来说是一个比较大的挑战。

posted @ 2009-10-17 17:04  送海  阅读(3559)  评论(34编辑  收藏  举报