RBAC(Role-Based Access Control,基于角色的访问控制),就是用户经过角色与权限进行关联。简单地说,一个用户拥有若干角色,每个角色拥有若干权限。这样,就构形成“用户-角色-权限”的受权模型。在这种模型中,用户与角色之间,角色与权限之间,通常者是多对多的关系。(以下图).net
当用户量很是多的时候,逐一的给用户受权角色是一件很痛苦的事情,因而引出组的概念。用户拥有的全部权限,就是用户我的拥有的权限与该用户所在用户组拥有的权限之和。设计
OK,用户到角色的好理解,接下来看权限blog
权限表现成什么?对功能模块的操做,对上传文件的删改,菜单的访问,甚至页面上某个按钮、某个图片的可见性控制,均可属于权限的范畴。有些权限设计,会把功能操做做为一类,而把文件、菜单、页面元素等做为另外一类,这样构成“用户-角色-权限-资源”的受权模型。图片
操做的权限:资源
功能,credget
菜单的访问sed
页面按钮的点击权限
内容:im
图片的可见性qq
菜单的可见
按钮的可见
这些都是基本的权限。
powerdesigen设计图以下:
权限表与权限菜单关联表、权限菜单关联表与菜单表都是一对一的关系。(文件、页面权限点、功能操做等同理)。也就是每添加一个菜单,就得同时往这三个表中各插入一条记录。这样,能够不须要权限菜单关联表,让权限表与菜单表直接关联,此时,须在权限表中新增一列用来保存菜单的ID,权限表经过“权限类型”和这个ID来区分是种类型下的哪条记录。
权限表和功能操做表多对多的关系。
请留意权限表中有一列“权限类型”,咱们根据它的取值来区分是哪一类权限,如“MENU”表示菜单的访问权限、“OPERATION”表示功能模块的操做权限、“FILE”表示文件的修改权限、“ELEMENT”表示页面元素的可见性控制等。
总的设计图:
实际项目中咱们涉及到的权限。
菜单权限,按钮操做性等
参考文献:
http://blog.csdn.net/painsonline/article/details/7183613/
转自:http://blog.csdn.net/qq383264679/article/details/51745522