用户权限管理设计

Java论坛系统--3.系统用户角色权限表结构设计 通常我们的网站都有权限控制,就像一个公司有产品、开发、运维之分,各自负责各自的业务,相互独立,有相互协作,共同完成一个任务。拥有不同权限的用户查看不同的页面,进行不同的操作。 Shiro是一种轻量级的安全框架,主要是做登录验证,权限检查,相对 Spring Security 是要简单很多,源码也很清晰。 表结构 在这里我主要是针对后台的用户操作权限的设计: 1.定义用户表 sys_user... 阅读详情

用户管理权限设计一直是大家讨论的热点,因为几乎涉及到每一个开发的业务系统。我找了很多很多的资料,大家的核心基本上都是一样的:基于角色管理. 用户,角色,模块,权限的相互组合,就可以形成一个强大的权限管理系统。

最近在一个项目中设计的一个用户权限的设计,很乐意与大家一起讨论及分享.

设计思路

我的设计思路或者说是我想要实现的功能

1.用户的权限通过角色来控制,一个用户可以拥有多个角色.

2.用户拥有不同角色时,其权限应该是多个角色相互的补集.

3.一个角色拥有多个模块

4.用户的前台菜单显示根据角色所拥有的模块所决定,不同的用户在前端显示的操作菜单是不一样的。

5.页面中的功能按钮根据模块中所包含的功能所定义,通过模块及角色所拥有的权限进行控制

6.可看某个模块有哪些用户,哪些对应角色,并对其进行特殊权限设置.

7.可以针对单个用户进行特殊设置

我在我的Project中,基本上达到了以上的效果及功能,但在实际过程中发现有些不足之处。因为整个权限设计是基于数据库来设计中,所以数据的读取当数据量大时(我所说的数据量是以万以上来计)可能对性能有一定的影响。但对于一般来说,几千用户之类的我想还是可以承受的。我会在后面说明不足之处。

数据库设计

基本设计:

1.首先,设计数据库.

数据库的设计其实我估计大家都很熟悉了

基本表:用户表,角色表,模块表,功能表,管理员表.如果涉及到企业性质的,可能会根据需要加上组织结构表,群组表等其它辅助表

用户

 

管理员

角色

模块

(我的模块表考虑了子模块的因素,所以会有深度,父模块ID这两个字段,在后来开发过中,由于思路的转变,IsRootModule,FunctionCode我都没有用到,为了让整个权限系统通变得更通用,我都将其单独设计成了另一个表)

功能表(功能表就是模块对应的功能:增加,删除,修改,详细,列表,浏览,导出,导入之类的)

业务表:用户-角色表 模块-功能表 角色-模块表

要实现一个用户多个角色(1 to n),一个角色多个模块(1 to n),一个模块多个功能(1 to n),那就得加上几个相关的业务表,之前考虑用视图去实现,我个人之见,视图最好只用来读取数据,不要用来进行数据操作.后来证明是不可取的,这里要注意的就是在实际的业务操作中,应该尽量避免重复的数据录入. 这些表都很简单,但却很关键

用户-角色:

角色-模块:

模块-功能:

大家可以看到,表结构很简单,字段也很少,设计也差不多。都是将相关联的字段ID取出来做数据存取。

视图:用户-角色-模块-功能视图

 

可能大家会觉得很奇怪,为什么这里出现member_role呢。因为我们在数据表中只存取了ID值,而对应的RoleName字段并没有包含其中,这里的视图就是获取关联表中其他所需要的字段数据了。另外两个视图大家看名字应该就知道他的用处了。

存储过程:各自表的增加,删除,修改,及列表数据. 判断是否存在相同的数据 
(CUDLIS-Create, Update,Delete,IfExist,Show,List)

存储过程我就不一一列出了,很简单的,你只要写出下面这些基本上你在开发过程就不会有太多问题了. 注意的是:在相互关联的业务表中,最好能对数据插入进行重复数据判断(用户角色表,模块功能表,角色模块表,尽量避免重复的数据插入)我把大致需要实现的业务列个表给大家参考:

用户表:(Insert ,Update ,IfExist ,Show, Delete)

用户角色表:(Insert ,Update,IfExist,Delete,RoleListByUserID,UserListByRoleID)

角色表:(Insert,Update,IfExist,Show,Delete)

角色模块表:(Insert,IfExist,Delete,Show,RoleListByModuleID,ModulistByRoleID)

模块表:(Insert,Update,IfExist,Show,Dlete,ListByRootModuleID,ListByModuleLevel)

模块功能表:(Insert,Update,Delete,FunctionListByModuleID)

针对用户直接获取其所有的权限时,应该有个单独的Procedure从视图中Member_Role_Module_Function中获取其对应的数据,这样就可以得到想要的东西了。

数据库设计部分应该就这样差不多了。我想这应该是通用的。在实际运用过程中,我个人认为应该有一些改进点:

1.模块与功能部分,可以用字符串的形式将模块对应的功能存在一个数据字段中,这样可能在你的代码编写中可以省下较多的时间并带来更多的便利(主要是可以用split()来代替频繁的数据获取业务)这个我在最初设计中没有想到这点,有点失策.

2.针对N级模块的权限展现问题,如何让父模块继承子模块的权限这个是我没有考虑到的,不过我想应该可以用IsRootModule这个字段来作文章,可惜我还没想到如何去整这个字段。当子模块很多时,在前端UI展示的时候是否会出现很慢的情况?这个我没有去做测试,带有一定的风险。
但在前端UI展示我还没想到或实现好的办法,我能想到的应该是像GridViewTree那种不错。

这个权限设计已经在我的Project中运用,暂时没有发现什么问题,而且为我以后对其它系统集成也很有帮助。至于如何在C#中实现业务,个人认为只要知道数据库如何整的,那C#中的业务实现只是一个取数操作过程。

MySQL数据表设计 系统权限表设计 权限、角色、用户表设计 修改字符集:utf8和utf8mb4,推荐使用:utf8mb4utf8:主要支持Unicode字符集中的基本多语言平面(BMP)范围内的字符,码点范围从0x0000到0xFFFF。这涵盖了大多数常用的字符,包括拉丁语、希腊语、中文、日文等。但它不包含一些表情符号(Emoji)。utf8mb4:是utf8的超集,支持Unicode字符集的全部字符,能够表示更多的特殊字符。校对规则(Collation),推荐使用:utf8mb4_unicode_ci。 阅读详情

相关推荐

设计一个完美的用户角色权限表

设计一个完美的用户角色权限表需要考虑系统的安全性、灵活性和可扩展性。以下是一个详细的用户角色权限管理表设计方案,包含多个表结构和字段描述。

私聊前往站内信:https://i.youkuaiyun.com/#/msg/chat/weixin_44976692 2万+

表设计之权限管理

表设计之权限管理

KaKaa__的博客 1757

用户权限管理系统设计与实现完整方案

用户权限管理是通过身份认证(Authentication)与授权(Authorization)机制,精确控制用户对系统资源的访问行为。其核心在于确保“合法用户仅能访问其被授权的资源”,从而保障数据的机密性、完整性与可用性。Django自带模块,但灵活性有限。在复杂场景下,常需自定义权限模型。# utils.py"""获取用户所有权限code"""# views.pyreturn HttpResponseForbidden("权限不足")# 正常业务逻辑优势。

weixin_35949153的博客 1568

用户权限管理设计(1)

用户管理权限设计一直是大家讨论的热点,因为几乎涉及到每一个开发的业务系统。我找了很多很多的资料,大家的核心基本上都是一样的:基于角色管理. 用户,角色,模块,权限的相互组合,就可以形成一个强大的权限管理系统。最近在一个项目中设计的一个用户权限的设计,很乐意与大家一起讨论及分享.设计思路我的设计思路或者说是我想要实现的功能1.用户的权限通过角色来控制,一个用户可以拥有多个角色.2.用户拥有不同角色时...

weixin_30413739的博客 718

计算机组成原理实验logisim(四)之运算器实验

注意,上半张图中所有连入32位宽多路选择器的器件和的“数据位宽”都是32,而中间部分连入1位多路选择器的器件的“数据位宽”皆为1(除了连向“32位加法器”的那一个非门,是32位)。第二到第五个实验的测试,具体怎么测试好吧我也不太清楚,听室友说就是让你分析各种亮灯的原理,比如你点这个,那个为什么颜色要变等等,我就不粘图了,恩大家加油。连图如下,需要在连线之前格外注意“异或门”和“与门”的位宽,将16改为1,不然数据无法通行。关于学术问题,为何这样连什么的,就别问我了,我也没有搞的那么透彻。

qq_54422132的博客 2万+

CentOS7下Node.js v20+安装与常见依赖库问题解决指南

本文详细介绍了在CentOS7系统下安装Node.js v20+的完整流程及常见依赖库问题的解决方案。通过升级glibc到2.28+、配置环境变量以及处理libstdc++版本问题,帮助开发者顺利在老旧系统上部署最新版Node.js,提升开发效率。

weixin_30689307的博客 156

后台用户角色权限管理设计

目录 1、概述 2、设计 2.1 用户管理 2.2 角色管理 2.3 权限管理 2.4 用户、角色、权限的关系 3、总结 1、概述 在设计产品后台系统设置时,可根据不同项目的实际需求来设计后台系统设置的内容,比如用户角色权限、系统日志、数据统计,任务进程、数据备份等等很多,其中,用户角色权限管理属于整个后台系统设置必不可少的内容,甚至有些业务复杂的产品会为与其对应的后台系统设置单独设计一款独立运行的产品,不过目的都是为了更好的管理各个业务流程步骤中每一位用户的权限,防止用...

qq_39302908的博客 9994

首个基于LBS方案的3D传感器,VoxelSensor解析

该传感器将结合OQmented的Lissajous模式的MEMS扫描镜,与每帧逐行工作的光栅扫描相比,Lissajous轨迹扫描速度更快,并且能耗很低,它可以更快地捕获完整的场景和快速移动,并且需要更少的数据处理,可满足AR/VR对于低延迟、高效率的需求。简单来讲,Switching Pixels的区别是专注于识别激光事件,性能比普通事件相机更好,但也可以使用事件相机的算法。在具体应用中,它需要在X和Y方向发射一个或多个脉冲光束,以在X和Y轴上定位,而Z轴,也就是深度,则是通过计算光返回的时间来测量。

qingtingwang的博客 575

用户权限管理设计java_用户权限管理设计

用户管理权限设计一直是大家讨论的热点,因为几乎涉及到每一个开发的业务系统。我找了很多很多的资料,大家的核心基本上都是一样的:基于角色管理. 用户,角色,模块,权限的相互组合,就可以形成一个强大的权限管理系统。最近在一个项目中设计的一个用户权限的设计,很乐意与大家一起讨论及分享.设计思路我的设计思路或者说是我想要实现的功能1.用户的权限通过角色来控制,一个用户可以拥有多个角色.2.用户拥有不同角色时...

weixin_36373013的博客 1626

YOLOv8改进——引入可变形卷积DCNv3

本文只讲解在YOLOv8的代码中添加DCNv3的操作流程, 具体的原理参见上述的链接~是pytorch实现的版本,只要基础的pytorch环境安装正确就不会出错。是C++实现版本,必须先在上一步编译成功,或者安装好了轮子,否则会报错。但是在实际的训练过程中,C++版本的运行速度更快,推荐使用C++版本。(具体怎么修改,都可以自己决定,然后通过实验看看效果如何)文件夹,该文件夹下的内容就是实现DCNv3算子的核心代码。中,下图中的列表里添加。

zyw2002的博客 3万+

fragstats:景观指数趋势分析

优快云@_养乐多_本文将介绍景观指数时间序列的趋势分析,包括趋势类型、斜率、截距等。以及景观指数突变分析所用的软件和 python 代码。结果如下图所示,

养乐多的博客 2859

Vue + Spring Boot 项目实战(十一):用户角色权限管理模块设计

项目正式进入第二阶段。

Evan 的博客 6万+

Unet++改进33:添加ConvolutionalGLU(2024最新改进方法)|紧凑的网络结构和高效的运算

由于残差连接的深度退化效应,许多依赖堆叠层进行信息交换的高效视觉变形模型往往不能形成足够的信息混合,导致视觉感知不自然。为了解决这个问题,在本文中,我们提出了聚合注意力,这是一种基于仿生设计的令牌混合器,它模拟生物中央凹视觉和连续眼运动,同时使特征映射上的每个令牌具有全局感知。此外,我们结合了可学习的令牌,与传统的查询和键交互,这进一步多样化了亲和矩阵的生成,而不仅仅依赖于查询和键之间的相似性。我们的方法不依赖于堆叠进行信息交换,从而有效地避免了深度退化,实现了自然的视觉感知。

AIcurator的博客 683

Open4Cms用户权限管理设计

Open4Cms用户权限管理设计 这是用到的用户、角色、权限相关表。

企业管理软件 882

全球APN信息汇总

全球APN信息,电信APN,移动APN,联通APN,台湾APN,马来西亚APN,俄罗斯APN,日本APN,泰国APN,美国APN,英国APN,法国APN,德国APN,意大利APN,葡萄牙APN,土耳其APN,荷兰APN,丹麦APN,比利时APN,爱尔兰APN,新加坡APN,越南APN,老挝APN,菲律宾APN,印尼APN,泰国APN,柬埔寨APN,巴基斯坦APN,印度APN,奥地利APN,保加利亚APN,捷克APN,立陶宛APN,罗马尼亚APN,挪威APN,希腊APN,匈牙利APN,瑞士APN,乌克兰APN

renkai721的专栏 2796

VI4302 1D dToF Sensor助力无人机定高避障:一场前所未有的飞行体验

另外,传感器因测量精度不够,产生的高度信息误差,会导致无人机无法精确定高,影响飞行稳定性和安全降落。芯视界于2022年发布的全新一代基于单光子探测技术的dToF激光雷达传感器芯片-VI4302,采用单电源低功耗系统,实现高性能测距、高稳定性,同时具备极强抗阳光能力以及兼容性等强大优势。无人机可以根据传感器提供的信息,快速调整飞行路径,避开潜在的障碍物,确保平稳的飞行。VI4302 1D dToF Sensor能够以极高的精度测量物体与无人机之间的距离,实现毫米级别的测量精度。⭐ 体型小巧,灵敏度高。

致力于lidar应用开发 621

一个用户权限管理模块的设计思路

:一个用户权限管理模块的设计思路 一、 1. 权限资源(功能资源) 系统的所有权限信息。权限具有上下级关系,是一个树状的结构。如下: u 系统管理 l 单位管理 u 查看单位 u 添加单位 u 修改单位 u 删除单位 l 部门管理 u 查看部门 u 添加部门 u 修改单位 u 删除...

xgbjmxn的专栏 1352

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

用户权限管理模块设计

用户权限管理模块设计 [url]http://wenku.baidu.com/view/bf40fd06eff9aef8941e0672.html[/url]

janckywong963的专栏 249

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

基于角色-资源-用户的权限管理设计

基于角色-资源-用户的权限管理设计 一、数据库结构      先来看一下数据库结构,采用的是基于角色-资源-用户的权限管理设计。(MySql数据库)     为了节省篇章,只对比较重要的字段进行注释。     1.用户表Users     CREATE TABLE `users` (        -- 账号是否有限 1. 是 0.否        `enable` int(11

那个谁的空间 3158

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

菜单管理,权限管理,用户管理界面设计

提出问题! 1每个界面需要展示哪些问题?   1.1以哪种方式展示? 每个界面会进行哪些操作? 好了,带着问题进行思考,进行设计 。先来简单的用户管理界面来说,我需要展示用户(管理员)的信息。 方式是:表格形式,需要进行的是对用户的增加,删除,修改 ,模糊查询,以及赋予角色权限。 在菜单管理界面,我需要展示该用户所能操作的菜单详情,分别展示top 菜单 和top 菜单下的子菜单...

weixin_30500105的博客 3616

RBAC用户角色权限管理模型设计(全网最全没有之一)

RBAC(Role-Based Access Control),即基于角色的访问控制,是一种广泛应用于信息安全领域的访问控制模型。RBAC的核心思想是将系统中的用户按照其角色进行分类,然后定义不同角色具有的权限,最后指定哪些用户属于哪些角色,从而实现权限管理。

weixin_57909742的博客 8299

asp.net下的用户权限管理模块设计

最近一段时间,公司要我和另一个同事负责设计一个共同框架为一个内部项目做准备。而这个框架以后也会逐步的应用在公司的其他.net项目中。 所以感觉任务很重,压力很大。虽然上面也清楚我们的能力(很一般的说),所以对框架也只是提出了基本的要求。例如,实现用户权限管理。在这里,我将把我的设计和大家说一下,请大家多多指正。 1。总体设计 这部分应该包括用户登陆校验,访问页面校验,显示用户...

weixin_30399155的博客 179

实现业务系统中的用户权限管理--设计篇

搜一搜更多此类问题 IT特区技术论坛-全面打造西部最大的信息技术交流论坛!!! → 系统设计 → 企业管理系统 → MIS → 实现业务系统中的用户权限管理--设计篇 function astro(birth){ if (birth!=) { var tmpstr; var bstr; var mm; var yy;

zstzw的专栏 1677

java用户角色权限管理 只显示姓_java权限管理与用户角色权限设计

实现业务系统中的用户权限管理B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能。因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户...

weixin_39737492的博客 137

数据库设计--用户、角色及权限管理

数据库设计--用户、角色及权限管理 关键字: 数据库设计 关于用户、角色及权限管理。如下设计是在oracle数据库环境下demo. 1、table user(用户表) ------------------------------------------------- ID username password name ... ...

fytcm的专栏 886

淘客返利平台的用户权限管理设计

通过本文的讨论,我们详细探讨了淘客返利平台中用户权限管理的设计原则、实施方法和最佳实践。合理的角色管理、精细的权限控制和灵活的实施策略是构建安全可靠的用户权限管理系统的关键步骤。

微赚淘客系统开发者博客 922
上一篇: 启动WORD后让安装Genko.msi的解决方法
下一篇: js去掉html标签和去掉字符串文本的所有的空格
OnePiece_Sky
博客等级 码龄15年 9粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值