
用户及权限管理设计.ppt
16页用户及权限管理设计用户及权限管理设计主要内容主要内容 v用户管理及权限管理的意义用户管理及权限管理的意义v用户及权限管理涉及的几个概念用户及权限管理涉及的几个概念v用户及权限管理设计方案用户及权限管理设计方案v用户及权限管理通用功能设计用户及权限管理通用功能设计v用户及权限管理设计实例用户及权限管理设计实例用户管理及权限管理的意义用户管理及权限管理的意义v用户管理及用户管理及权限权限管理管理一直是应用系统一直是应用系统中中不可缺少不可缺少的一个部分的一个部分v系统用户很多,系统功能也很多系统用户很多,系统功能也很多v不同用户对系统功能的需求不同不同用户对系统功能的需求不同v出于安全等考虑,关键的、重要的系统功能需限出于安全等考虑,关键的、重要的系统功能需限制部分用户的使用制部分用户的使用v出于方便性考虑,系统功能需要根据不同的用户出于方便性考虑,系统功能需要根据不同的用户而定制而定制用户及权限管理涉及的几个概念用户及权限管理涉及的几个概念v用户分类:用户分类:系统用户、超级用户、管理员用户、系统用户、超级用户、管理员用户、DBA用户、领用户、领导用户、专家用户、操作员用户、客户用户、导用户、专家用户、操作员用户、客户用户、……v系统权限:系统权限:即对不同用户使用系统资源(功能菜单项、按钮、即对不同用户使用系统资源(功能菜单项、按钮、输入控件等)的使用或访问权限输入控件等)的使用或访问权限v用户:用户:应用系统的具体操作者,用户可以拥有一定范围的权限应用系统的具体操作者,用户可以拥有一定范围的权限v角色:角色:为了对许多拥有相似权限的用户进行分类管理,定义了角为了对许多拥有相似权限的用户进行分类管理,定义了角色的概念,例如系统管理员、管理员、用户、访客等角色色的概念,例如系统管理员、管理员、用户、访客等角色v组:组:为了更好地管理用户,对用户进行分组归类,简称为用户分为了更好地管理用户,对用户进行分组归类,简称为用户分组,如普通组,如普通群、高级群、高级群;一级单位用户、二级单位用户等群;一级单位用户、二级单位用户等用户及权限管理涉及的几个概念用户及权限管理涉及的几个概念用户的权限集用户的权限集 == 自身的权限自身的权限 ++ 所属的各角色权限所属的各角色权限 ++ 所属的各组权限所属的各组权限权限、用户、角色、组之间的关系权限、用户、角色、组之间的关系用户及权限管理设计方案用户及权限管理设计方案1. 基于角色的权限设计基于角色的权限设计2. 基于操作的权限设计基于操作的权限设计3. 基于角色和操作的权限设计基于角色和操作的权限设计4. 2&3组合的权限设计组合的权限设计5. 精确至数据记录的权限设计精确至数据记录的权限设计6. 涉及资源、权限和规则的权限设计涉及资源、权限和规则的权限设计 用户及权限管理设计方案用户及权限管理设计方案1. 基于角色的权限设计基于角色的权限设计l最常见也是比较简单的方案最常见也是比较简单的方案l通常这种设计已经足够通常这种设计已经足够l微软设计了该方案的通用做法:微软设计了该方案的通用做法:ü所有所有““操作操作””(功能)跟(功能)跟““角色角色””匹配匹配ü在程序中根据在程序中根据““角色角色””对是否具有对是否具有““操作操作””权限进行控制权限进行控制用户及权限管理设计方案用户及权限管理设计方案2. 基于操作的权限设计基于操作的权限设计v该模式下每一个该模式下每一个““操作操作””都在数据库中有记录,用户是否拥有该操都在数据库中有记录,用户是否拥有该操作的权限也在数据库中有记录作的权限也在数据库中有记录v问题:如果直接使用上面的设计,会导致数据库中的问题:如果直接使用上面的设计,会导致数据库中的UserAction表数据量非常大,需要进一步设计提高效率表数据量非常大,需要进一步设计提高效率用户及权限管理设计方案用户及权限管理设计方案3. 基于角色和操作的权限设计基于角色和操作的权限设计v该方案是对方案该方案是对方案2的改进:添加了的改进:添加了Role和和RoleAction表,从而可以表,从而可以减少减少UserAction中的记录,并且使设计更灵活中的记录,并且使设计更灵活v不足:经常需要定义新的不足:经常需要定义新的““角色角色””例如:例如:当用户要求临时给某位普通员工某操作权限时,就需要新增加一种当用户要求临时给某位普通员工某操作权限时,就需要新增加一种新的用户角色,但是这种用户角色是不必要的,因为它只是一种临时的角色,新的用户角色,但是这种用户角色是不必要的,因为它只是一种临时的角色,如果添加一种角色还需要在收回此普通员工权限时删除此角色如果添加一种角色还需要在收回此普通员工权限时删除此角色用户及权限管理设计方案用户及权限管理设计方案v添加了添加了UserAction表,使用此表来添加表,使用此表来添加特殊用户的权限特殊用户的权限,该表中有一个字段,该表中有一个字段HasPermission可以决定用户是否有某种操作的权限,该表中记录的权限的优可以决定用户是否有某种操作的权限,该表中记录的权限的优先级要高于先级要高于UserRole中记录的用户权限。
这样在应用程序中我们就需要通过中记录的用户权限这样在应用程序中我们就需要通过UserRole和和UserAction两张表中的记录判断权限两张表中的记录判断权限v不足:有可能用户会要求某一种不足:有可能用户会要求某一种Action所操作的对象所操作的对象部分记录有权限部分记录有权限,而对于,而对于其他的记录没有权限,比如说一个内容管理系统,对于某一些频道某个用户有其他的记录没有权限,比如说一个内容管理系统,对于某一些频道某个用户有修改的权限,而对于另外一些频道没有修改的权限,该设计不能满足要求修改的权限,而对于另外一些频道没有修改的权限,该设计不能满足要求4. 2&3组合的权限设计组合的权限设计用户及权限管理设计方案用户及权限管理设计方案l该方案需要对每一种不同的资源创建一张权限表该方案需要对每一种不同的资源创建一张权限表l例如:上图中对例如:上图中对Content和和Channel两种资源分别创建了两种资源分别创建了UserActionContent和和UserActionChannel表用来定义用户对某条记录是否有权限表用来定义用户对某条记录是否有权限l不足:不足:该设计可以满足用户需求但是不是很经济该设计可以满足用户需求但是不是很经济,,UserActionChannel和和UserActionContent中的记录会很多,而在实际的应用中并非需要记录所有的记录中的记录会很多,而在实际的应用中并非需要记录所有的记录的权限信息,有时候可能只是一种规则,比如说对于跟的权限信息,有时候可能只是一种规则,比如说对于跟Channel什么级别的人有权什么级别的人有权限;这时我们就可以定义些规则来判断用户权限,下面就是这种设计限;这时我们就可以定义些规则来判断用户权限,下面就是这种设计5. 精确至数据记录的权限设计精确至数据记录的权限设计〔〔对于同一种实体(资源)用户可以对对于同一种实体(资源)用户可以对一部分记录有权限一部分记录有权限〕〕用户及权限管理设计方案用户及权限管理设计方案6. 涉及资源、权限和规则的权限设计涉及资源、权限和规则的权限设计 该该设设计计下下角角色色的的概概念念已已经经没没有有了了,,只只需需要要Rule在在程程序序中中的的类类中定义用户是否有操作某种对象的权限。
中定义用户是否有操作某种对象的权限用户及权限管理通用功能设计用户及权限管理通用功能设计用户及权限管理具体实现中,用户及权限管理具体实现中,通用的管理功能大致如图通用的管理功能大致如图用户及权限管理设计实例用户及权限管理设计实例《《大庆炼化公司建设项目后评价管理系统大庆炼化公司建设项目后评价管理系统》》中的用户及权限管理设计中的用户及权限管理设计方案采用的是方案方案采用的是方案3((用户-角色-操作用户-角色-操作))用户及权限管理设计实例用户及权限管理设计实例《《大庆炼化公司建设项目后评价管理系统大庆炼化公司建设项目后评价管理系统》》中的用户及权限管理设计中的用户及权限管理设计方案采用的是方案方案采用的是方案3((““用户-角色用户-角色””设定功能实现设定功能实现))用户及权限管理设计实例用户及权限管理设计实例《《大庆炼化公司建设项目后评价管理系统大庆炼化公司建设项目后评价管理系统》》中的用户及权限管理设计中的用户及权限管理设计方案采用的是方案方案采用的是方案3((““用户-操作用户-操作””设定功能实现设定功能实现))。
