JavaJava

本文介绍了访问控制策略的几种类型,重点讲解了基于角色的访问控制(RBAC)模型,包括用户、角色和权限的关系。并展示了如何在Java中实现RBAC,通过创建用户表、角色表、权限表和相关关联表来构建RBAC系统,以及在三层结构中实现查询和展示功能。
摘要由CSDN通过智能技术生成

一:权限系统
    ①:访问控制策略
        访问控制策略一般有以下几种方式:
(1)自由型访问控制:用户|对象来决定访问权限。信息的所有者来设定谁有权限来访问信息以及操作类型(读,写,执行...)是一种基于身份的访问控制。例如UNIX权限管理。

(2)强制性访问控制:系统来决定访问权限。安全属性是强制型的规定,它由安全管理员或操作系统根据限定的规则确定的,是一种规则的访问控制

(3)基于角色的访问控制:角色决定访问权限。用组织角色来同意或拒绝访问。比MAC,DAC更灵活,适合作为大多数公司的安全策略,但对一些机密性高的政府系统不适用。

(4)规则驱动的基于角色的访问控制:提供了一种基于约束的访问控制,用一种灵活的规则描述语言和ixn的信任规则执行机制来实现。

(5)基于属性证书的访问控制:访问权限信息存放在用户属性证书的权限属性中,每个权限属性描述了一个或多个用户的访问权限。但用户对某一资源提出访问请求时,系统根据用户的属性证书中的权限来判断是否允许或拒绝。

   重点:本次实现基于角色的访问控制策略方式
②:RBAC模型
         RBAC模型(Role-Based Access Control)-简称基于角色的访问控制,是20世纪90年代研究出来的一种新模型,但从本质上讲,这种模型是对前面描述的访问矩阵模型的扩展。这种模型的基本概念是把许可权(Permission)与角色(Role)联系在一起,用户通过充当合适橘色的成员而获得该角色的许可权。

         在实际的组织中,为了完成组织的业务工作,需要在组织内部设置不同的职位,职位既标识一种业务分工,又标识一种责任与权利。根据业务分工的需要,职位被划分给不同群体,各个群体的人根据其工作任务的需要被赋予不同的职责和权力,每个人有权了解与使用与自己任务相关的信息与资源,对于那些不应该被知道的信息则应该限制他们访问,这就产生了访问控制的需求。

举个栗子:
      在一个大学中,有校长,副校长,训练部长,组织处长,科研处长,教保处长等不同的职位,在通常情况下,职位所赋予的权利是不变的,但在某个职位上的工作的人可以根据需要调整,RBAC模型对组织内部的这些关系与访问控制要求给出了非常恰当的描述。

RBAC重要对象:
用户(User):角色施加的主体;用户通过拥有某个或多个角色以得到对应的权限

角色(Role):一组权限的集合

权限(Permission):用户限定能够访问的一个资源

注意:
          一个用户拥有若干角色,一个角色拥有若干权限,这样就构成了用户-角色-权限的授权模型


 

   组成:
 用户表:主键id,用户名,用户邮箱,是否为管理员,状态,创建时间,更新时间,......
 角色表:角色id,角色名,状态,创建时间,更新时间
 权限表(菜单权限表):权限id,权限标题,权限父级id,图标,权限路径,状态,排序,创建时间,更新时间,......
用户角色表:主键id,用户id,角色id,创建时间,更新时间
角色权限表:主键id,角色id,权限id,创建时间,更新时间,......
/*权限表(菜单表)*/
 
create table tb_promission
(
  id number primary key,--权限id
    text varchar2(100) not null,--权限名称
    pid number not null,--权限父级id
    icon varchar2(100),--菜单显示的icon
    url varchar2(100),--权限资源路径
    state number,--状态;该记录是否有效1:有效、0:无效
    sort number--排序码
)
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(1,'店铺管理',-1,'','',1,1);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(2,'图书分类管理',-1,'','',1,2);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(3,'图书管理',-1,'','',1,3);
insert into tb_promission(id,text,pid,icon,url,state,sort) values
(4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值