二进制权限控制(二)

本文深入探讨了二进制权限控制的概念,通过二进制位设定来表示不同的权限,例如00000001表示拥有第1个菜单权限。接着介绍了如何赋予和回收权限,如通过按位或操作添加权限,使用按位取反和与操作回收权限。以张三为例,解释了如何动态管理他的权限,如赋予他访问菜单3的权限。
摘要由CSDN通过智能技术生成

二进制权限控制(二)

标签(空格分隔): 未分类


1、权限值的设定
用二进制来表示权限值应该是按位来设置,每个位占一个,表示一种权限或一个菜单,如:
0000000 1 表示拥有菜单编号为1的权限
000000 1 0 表示拥有菜单编号为2的权限
……
如张三拥有权限11(00001011),表示张三可以访问菜单编号为4、2、1的菜单。

2.权限的赋予(或操作):
如果张三的权限为11(00001011),现在要给他赋于菜单编号为3(00000100=4,从右往左数第三位为1)的权限,则进行‘或’操作,即:11 | 4 = 00001011 | 00000100 = 00001111 = 15

3.权限的回收(权限取反后“与”操作)
如要回收菜单编号为2(00000010)的权限,先对菜单权限取反:~2 = 11111101
与原来的权限进行“与”操作:00001111 & 11111101 = 00001101 = 13,即回收了张三菜单2的访问权限。

CREATE TABLE StatRole(
    RoleID           INT,
    RoleName         VARCHAR(100),    --角色名称
    MenuRights       LVARCHAR(1000) DEFAULT '0',  --菜单权限
    ARights          LVARCHAR(1000) DEFAULT '0',  --添加权限
    DRights          LVARCHAR(1000) DEFAULT '0',  --删除权限
    ERights          LVARCHAR(1000) DEFAULT '0',  --修改权限
    QRights          LVARCHAR(1000) DEFAULT '0',  --查询权限
    XRights          LVARCHAR(1000) DEFAULT '0',  --备用权限x
    YRights          LVARCHAR(1000) DEFAULT '0',  --备用权限y
    ZRights          LVARCHAR(1000) DEFAULT '0',  --备用权限z
    ModifyTime       CHAR(19)
);
CREATE TABLE StatMenu(
    MenuID           INT,
    PID              INT,
    MenuTyp
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值