1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > RBAC(基于角色的权限访问控制)

RBAC(基于角色的权限访问控制)

时间:2018-12-13 13:24:06

相关推荐

RBAC(基于角色的权限访问控制)

第一节.RBAC简介

英文全称(Role-Based Access Control)中文全称:基于角色的权限访问控制rbac: 一种数据库设计思想,根据设计数据库设计方案,完成项目的权限控制.经常需要添加权限的情景

4.1 不同用户登录后看到的菜单是不一样的.

4.2 不同用户看到的页面效果不一样

4.2.1 有的用户可以看见”授权”按钮,或有的用户可以看见”删除”按钮

4.3 不同用户完成的功能是不一样的.

4.3.1 有的用户可以执行删除,有的可以执行新增.

学习RBAC需要掌握的两项

5.1 如何设计数据库中表

5.2 如何根据数据库完成项目

RBAC核心是角色,在数据库设计时一定有角色表.其他的表是根据具体需求看是否添加.

6.1 根据RBAC设计思想,设计出来的方案是非常灵活的.

第二节.传统项目数据库设计方案

[1] 数据库原型及其问题.

[2] 根据上面数据库表设计方案带来的问题:

2.1 新建一个用户时:

2.1.1 在用户表中添加一条数据.

2.1.2 在关联表中添加N条数据

2.1.3 每次新建一个用户需要添加:1+N(关联几个)条数据

第三节.RBAC设计方案(简单版)

解决传统项目设计方案中创建用户时教繁琐的操作.基于RBAC的设计方案

2.1 设定好在某些情况下哪些菜单需要被关联:

2.1.1 例如:管理员可以看到所有菜单

2.1.2 例如:销售总监可以看到”销售管理”菜单.

2.1.3 例如:普通员工只能看见系统公告中公告查看

2.2 现实生活中的职位对应1个或多个数据库中的角色.

在系统上线后,会在程序中添加几种比较常见的角色.并把菜单和角色关联.

3.1 以后每次新建用户时

3.1 在用户表中添加一个数据

3.2 在用户和角色关联表中添加1条或n条数据.

画图说明RBAC:

第四节. RBAC 的代码示例:

需求:

使用RBAC数据库设计思想,完成不同的用户登录

系统后显示不同的菜单。

要求:

用户:张三和李四

菜单:

用户管理

用户查询

增加用户

班级管理

班级查询

增加班级

查看通告

系统设置

数据库设计

数据库Sql语句

代码效果实现

main.jsp主页面的代码示例

MenuController的代码示例

MenuServiceImpl的代码示例

MenuMapper的代码示例

运行截图

第五节.RBAC 详细版本

数据库设计

1.1 权限表:平时小型项目中可以省略.

1.2 用户组表:对用户进行分组,每个用户组绑定多个角色,把用户放入到用户组后,具有对应多个角色.

1.3 角色组:角色组对应多个角色,用户组和角色组

1.4 完成访问控制时,需要对什么类型表进行访问控制(在简单版中)把需要控制的内容和角色进行直接关联.

1.4.1 详细版中是跟权限进行关联.

第六节.URL权限控制

作用:访问通过URL非法操作

1.1 例如:在浏览器中直接通过URL访问控制器.

区分开:和页面元素可见权限.

2.1 页面元素可见: 在页面能不能看到某些内容

2.2 URL权限指:在浏览器地址栏直接访问

实现思想(基于简单版):

3.1 添加URL表.

3.2 URL表和角色表进行关联.

3.3 在filter或拦截器中添加权限验证.

代码实现示例

4.1 数据库设计

i. 在当前rbac案例中新增一张url权限信息表

表名:t_url

作用:存储需要被管理的url地址信息。

字段:编号,url地址

ii. 在当前rbac案例中新增一张角色和url权限表的关联表

表名:r_url

作用:表名url和角色之间的关联关系

字段:角色ID,url的编号

iii. Sql语句示例:

4.2 代码实现

实现思路:

在项目增加过滤器,在过滤器中判断当前请求的

url地址和用户具备的操作的URL地址是否一致。

如果一致则放行,不一致则拦截,并提示其权限不足。

过滤器代码示例:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。