RBAC流程

本人  php技术小白,今天做rbac  以前接触的不是太多  于是便吧自己 今天做的整理一下

首先呢  创建五张表

2.1、用户表
CREATE TABLE t_user(
  user_id NUMBER(10) PRIMARY KEY,
  user_name VARCHAR2(30),
  gender NUMBER(1),
  birthday DATE, create_time DATE DEFAULT SYSDATE ); COMMENT ON TABLE t_user IS '用户表'; COMMENT ON COLUMN t_user.user_id IS '用户ID'; COMMENT ON COLUMN t_user.user_name IS '用户姓名'; COMMENT ON COLUMN t_user.gender IS '性别{1男/0女}'; COMMENT ON COLUMN t_user.birthday IS '出生日期'; COMMENT ON COLUMN t_user.create_time '创建时间';
2.2、角色表
CREATE TABLE t_role(
  role_id NUMBER(10) PRIMARY KEY,
  role_name VARCHAR2(30),
  create_time DATE DEFAULT SYSDATE ); COMMENT ON TABLE t_role IS '角色表'; COMMENT ON COLUMN t_role.role_id IS '角色ID'; COMMENT ON COLUMN t_role.role_name IS '角色名称'; COMMENT ON COLUMN t_role.create_time '创建时间';
2.3、权限表
CREATE TABLE t_power(
  power_id NUMBER(10) PRIMARY KEY,
 power_url varchar(30), power_name VARCHAR2(30), create_time DATE DEFAULT SYSDATE ); COMMENT ON TABLE t_power IS '权限表'; COMMENT ON COLUMN t_power.power_id IS '权限ID'; COMMENT ON COLUMN t_power.power_name IS '权限名称';
COMMENT ON COLUMN t_power.power_url IS '权限名称相对应的路径'; COMMENT ON COLUMN t_power.create_time '创建时间';
2.4、用户角色(关系)表
CREATE TABLE t_user_role(
  user_id NUMBER(10) NOT NULL,
  role_id NUMBER(10) NOT NULL ,
  create_time DATE DEFAULT SYSDATE ); COMMENT ON TABLE t_user_role IS '用户角色(关系)表'; COMMENT ON COLUMN t_user_role.user_id IS '用户ID'; COMMENT ON COLUMN t_user_role.role_id IS '角色ID'; COMMENT ON COLUMN t_user_role.create_time '创建时间';
2.5、角色权限(关系)表
CREATE TABLE t_role_power(
  role_id NUMBER(10) NOT NULL,
  power_id NUMBER(10) NOT NULL
);
COMMENT ON TABLE t_role_power IS '角色权限(关系)表'; COMMENT ON COLUMN t_role_power.role_id IS '角色ID'; COMMENT ON COLUMN t_role_power.power_id IS '权限ID'; COMMENT ON COLUMN t_role_power.create_time '创建时间';
创建完以上几张表之后
进行登录的操作
登录存cookie或session根据name或id查询此用户的权限 然后根据对应权限展示对应信息
查询sql
select * from power //权限表表名
where power_id //权限表id
in(select power_id from role_power where role_id in (select role_id from user_role where user_id = 1))
还不完善,,后续改进


转载于:https://www.cnblogs.com/dbwen/p/8335300.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RBAC(Role-Based Access Control)是一种常用的权限控制模型,它由用户、角色和权限三个主体组成。用户属于某个角色,而角色具有某些权限。在网关层的鉴权过程中,使用了RBAC模型来对用户进行授权,判断其是否具有访问权限。\[2\] 在网关层的处理中,首先会进行身份认证,解析JWT中的角色ID(RoleId),然后根据该角色ID从Redis缓存中获取对应的角色权限。接下来,通过调用RbacFilter函数来验证用户是否具有访问权限。该函数会根据传入的角色ID和方法名,从Redis中读取相应的权限信息进行验证。如果验证通过,则用户具有访问权限;否则,返回错误信息。\[1\]\[3\] 整个RBAC鉴权的流程如下: 1. 增加RBAC的数据表和结构体,用于存储角色和权限的关联信息。 2. 将角色权限信息存储到Redis缓存中,并定时任务定期刷新权限缓存。 3. 网关层的身份认证后,解析JWT中的角色ID,获取Redis缓存中的角色权限。 4. 调用RbacFilter函数进行权限验证,判断用户是否具有对应权限。 通过以上步骤,网关可以对用户进行鉴权,根据RBAC模型来控制用户的访问权限。这样可以确保不同用户只能访问其具有权限的资源,提高系统的安全性和可控性。 #### 引用[.reference_title] - *1* *2* *3* [基于go-micro微服务的实战-Gateway网关层的鉴权-rbac(六)](https://blog.csdn.net/toegg/article/details/127281211)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值