权限设置原理

--权限许可
create table res_permission
(
 roleid      INTEGER,
 resourceid  varchar2(30),
 operationid integer,
 primary key(roleid,resourceid,operationid)
)


--角色定义
create table res_role
(
 roleid      INTEGER,
 rolename    varchar2(30),
 roledesc    varchar2(100),
 primary key(roleid)
)

--角色权限
create table res_userrole
(
 roleid      INTEGER,
 userid      varchar2(30),--用户名
 primary key(roleid,userid)
)

--资源
create table res_resource
(
 resourceid      varchar2(20),
 resourcename    varchar2(30),
 resourcedesc    varchar2(100),
 primary key(resourceid)
)
--操作信息
create table res_operation
(
 operationid      varchar2(20),
 operationname    varchar2(30),
 operationdesc    varchar2(100),
 primary key(operationid)
)
--res_operation 表的序列号
create  sequence   res_operation_seq;
--res_role 表的序列
create  sequence   res_role_seq;
--建立soperationid与sroleid两个序列分别用来产生Operation表与Role表的ID列
create sequence soperationid increment by 1 start with 1 nomaxvalue minvalue 1;
create sequence sroleid increment by 1 start with 1 nomaxvalue minvalue 1;
--表设计的原理
--根据交叉法来匹配权限
--1:根据用户表中的用户id关联到res_userrole的userid,然后再关联到res_role,查出用户对应的所有权限,存放到list中
--2:根据资源和操作查询出用户可以操作的所有许可res_permission,存放到list中
--3:通过同时遍历两个list,查询出是否存在交叉,如果存在就是有权限,否则为无权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值