权限管理系统:Who:权限的拥用者或主体(Principal负责人)、User、Group、Role、Actor等等) What:权限针对的对象或资源(Resource、Class)。 How:具体的权限(Privilege, 正向授权与负向授权)。 Role:是角色,拥有一定数量的权限。 Operator:操作。表明对What的How操作。真正将Privilege与具体Resource实例联系在一起,形成Operator。 Resource:就是系统的资源,比如部门新闻,文档等各种可以被提供给用户访问的对象。 Privilege:是Resource Related的权限。比如说部门新闻的发布权限,叫做"部门新闻发布权限"。这就表明,该Privilege是一个发布权限,而且是针对部门新闻这种资源的一种发布权限。Privilege是由Creator在做开发时就确定的1.创造权限 - Creator创造, 2.分配权限 - Administrator分配, 3.使用权限 - User:使用1. Creator创造Privilege,Creator在设计和实现系统时会划分,一个子系统或称为模块,应该有哪些权限。这里完成的是rivilege与Resource的对象声明,并没有真正将Privilege与具体Resource实例联系在一起,形成Operator。 2. Administrator指定Privilege与Resource Instance的关联。在这一步,权限真正与资源实例联系到了一起,产生了Operator (Privilege Instance)。Administrator利用Operator这个基本元素,来创造他理想中的权限模型。如,创建角色,创建用户组,给用户组分配用户,将用户组与角色关联等等...这些操作都是由Administrator来完成的。 3. User使用Administrator分配给的权限去使用各个子系统。Administrator是用户,在他的心目中有一个比较适合他管理和维护的权限模型。于是,程序员只要回答一个问题,就是什么权限可以访问什么资源,也就是前面说的Operator。程序员提供Operator就意味着给系统穿上了盔甲。Administrator就可以按照他的意愿来建立他所希望的权限框架可以自行增加,删除,管理Resource和Privilege之间关系。可以自行设定用户User和角色Role的对应关系。如果将Creator看作是Basic的发明者,Administrator就是Basic的使用者,他可以做一些脚本式的编程)Operator是这个系统中最关键的部分,它是一个纽带,一个系在Programmer,Administrator,User之间的纽带。但凡涉及多用户不同权限的网络或者单机程序,都会有权限管理的问题,比较突出的是MIS系统。我们将权限分类:1.首先是针对数据存取的权限,通常有录入、浏览、修改、删除四种, 2.其次是功能,它可以包括例如统计等所有非直接数据存取操作, 3.另外,我们还可能对一些关键数据表某些字段的存取进行限制。权限表及相关内容大体可以用六个表来描述,如下:1 角色(即用户组)表:包括三个字段,ID,角色名,对该角色的描述;2 用户表:包括三个或以上字段,ID,用户名,对该用户的描述,其它(如地址、电话等信息);3 角色-用户对应表:该表记录用户与角色之间的对应关系,一个用户可以隶属于多个角色,一个角色组也可拥有多个用户。包括三个字段,ID,角色ID,用户ID;4 限制内容列表:该表记录所有需要加以权限区分限制的数据表、功能和字段等内容及其描述,包括三个字段,ID,名称,描述;5 权限列表:该表记录所有要加以控制的权限,如录入、修改、删除、执行等,也包括三个字段,ID,名称,描述;6 权限-角色-用户对应表:一般情况下,我们对角色/用户所拥有的权限做如下规定,角色拥有明令允许的权限,其它一律禁止,用户继承所属角色的全部权限,在此范围内的权限除明令禁止外全部允许,范围外权限除明令允许外全部禁止。该表的设计是权限管理的重点,设计的思路也很多,可以说各有千秋,不能生搬硬套说某种方法好。对此,我的看法是就个人情况,找自己觉得合适能解决问题的用。