文档下载 文档下载导航
设为首页 | 加入收藏
搜索 请输入内容:  
 导航当前位置: 文档下载 > 所有分类 > 经管营销 > 如何设计数据库表实现完整的RBAC(基于角色权限控制)
侵权投诉

如何设计数据库表实现完整的RBAC(基于角色权限控制)

高中物理教学艺术

如何设计数据库表实现完整的RBAC(基于角色权限控制).txt
如何设计数据库表实现完整的RBAC(基于角色权限控制)[转]
2007-11-04 14:15
RBAC(基于角色的权限控制)是一个老话题了,但是这两天我试图设计一套表结构实现完整的RBAC时,发现存在很多困难。
我说的完整的RBAC,是指支持角色树形结构和角色分组。具体来说,应当包含如下权限控制需求:

父级角色可以访问甚至是修改其子级的数据,包含直接子级直到最终子级。
角色可以访问其所在组的数据。
父级角色可以访问其所有子级(从直接子级到最终子级)所在组的数据。
而具体到我的系统中,还应当有如下需求。

兼容多种数据库产品。只能用简单的表,视图,存储过程和函数等实现。
同时兼容单条数据处理和批量数据处理的需求。
且不论这些具体需求,RBAC的基本表应当如下四个:

roleList表,记录所有的角色和角色组。
roleId: PK, 角色/组的ID,全局唯一,不区分角色和组。
roleName:角色/组的名称。
roleType: R - 角色,G - 组
rolePermission表,记录每一个角色/组对每一个对象的权限。
permissionID: PK, 无特定意义。
role: 角色/组的ID。
object: 对象的ID。
permission: 权限标识,如读,写,删等。
roleRelationship表,记录角色/组之间的关系。
relationId: PK, 无特定意义。
superiorRole: 父角色/组的ID。
role:子角色,子组,成员角色,成员组的ID。
relationship: 关系标识,可在如下设置集中选取一个。
PG标识:P - 父子关系,G - 组/成员关系。
PPGG标识:在PG集上,再加三种:PP - 间接父级关系,GG - 组内组关系,CG - parentRole是组,childRole的子角色或间接子角色是其成员,或其子组(含间接子组)的成员
objectList表,记录所有的对象。
objectId: PK,对象ID,全局唯一。
objectName: 对象名称。
... ...
分析上述表结构,不难发现,问题的关键在于从rolePermission表中读取数据时,如何限定角色/组的范围.

方案一

如果角色和组的总量不大,比如在100以内,采用PPGG标识关系,读取数据时是最快的。这个时候的SQL只需要一个输入参数?roleId:

SELECT object FROM rolePermission p left join roleRelationship r on p.role = r.role WHERE p.role = ?roleId or r.superiorRole = ?roleId. (尚未验证SQL的正确性)

但是,这个方案是以极度冗余roleRelationship表的数据为代价的,比如有100个角色,那么roleRelationship中将会有100 * 100 =10,000条记录。而在每次调整角色和R角色组的时候,就要在roleRelationship中一次增加或删除100条记录。这个开销是比较大的。

方案二

只标识PG,查询时接收的输入参数为一个完整的相关角色列表?roleList。

SELECT object FROM

第1页

你可能喜欢

  • 用户权限管理
  • 通用设计
  • php代码
  • 权限管理设计
  • 通用权限管理
  • mysql教程
  • 控制方法

热门文档

相关文档

  • RBAC角色权限表设计(1)

    RBAC角色权限表设计(1)_计算机软件及应用_IT/计算机...和数据资源,后者是我们在系统设计与实现中的叫法。 ...5.1.2 数据的一致性和完整性 为了保证数据库的...

  • RBAC角色权限表设计

    基于角色的访问控制),就是用户通过角色与权限进行...5.1.2 数据的一致性和完整性 为了保证数据库的...如何设计数据库表实现完... 2页 免费 基于RBAC的...

  • RBAC模型基于角色-功能-资源的权限控制模型

    RBAC模型基于角色-功能-资源的权限控制模型_IT/计算机...程序的实现 (应该有漏洞,还没有完全想好,请指正)...如何设计数据库表实现完... 2页 免费 如何设计数据...

  • RBAC 用户角色权限设计方案(非常好)

    基于角色的访问控制),就是用户通过角色与权限进行...到这里,RBAC 权限模型的扩展模型的完整设计图如下: ...这是我后面加的: 具体实现的话, 可通过表的关联...

  • RBAC在Web考试管理系统权限控制中的设计和实现

    基于RBAC的权限管理在Web中... 3页 2财富值 如何设计数据库表实现完整... ...数据表, 对整个系统进行角色权限控制共涉及到角色权限指派表、 功能权限表、角色...

  • 基于RBAC的角色权限树形管理

    管理(RBAC)的原理、权限管理的数据库设计、角色权限控制和用户角色控制的实现。...阿赖目录树控件程序完全采用面向对象的方 法设计,整个程序封装1个函数alai_tree(...

  • ThinkPHP 基于角色的权限控制

    ThinkPHP 基于角色的权限控制_IT/计算机_专业资料。Think...本篇主要描述了 ThinkPHP的RBAC设计思想和使用实例,...因为目前的 RBAC 类的实现和数据表是相关的,如果你...

  • java用户角色权限数据库设计

    如果不建立一个完整的权限检测,那么一个“非法用户...满足大部分 B/S 系统中对用户功能权限控制的权限...如何设计数据库表实现完... 2页 免费喜欢此文档的...

  • RBAC在Web考试管理系统权限控制中的设计和实现

    该文首先对基于角色的访问控制(RBAC )模型的基本...—— RBAC0—基本模型,定义了完全支持 RBAC 概念的...如何设计数据库表实现完... 2页 免费 基于RBAC的...

  • RBAC权限控制介绍

    限制分配给角色权限的多少和大小来实现,分配给与某用...1、基本模型RBAC0定义了完全支持RBAC概念的任何系统 ...如何设计数据库表实现完... 2页 免费 基于RBAC的...

站点地图 | 文档上传 | 侵权投诉 | 手机版
本站所有资源均来自互联网,本站只负责收集和整理,均不承担任何法律责任,如有侵权等其它行为请联系我们.
文档下载 Copyright 2013 doc.guandang.net All Rights Reserved.  -  email