权限设计是软件开发中的一个重要;知识点下面是我研究登陆权限的一点心得以供参考 ;后面会持续更新
一;分析
管理系统是我们最常见的,学校的教务系统,金蝶的K/3系统,都涉及到不同权限的人登陆可以操作的数据会有所不同; 不同权限是怎么在数据库中够成设计到一下一些概念;
用户;就是软件使用者
角色/组;软件使用者的身份
权限;用户对软件的使用权限
二;数据库的设计
1), 基于角色和权限的设计;
创建下面的四个表;
用户表;
用户名
角色的名称
角色表
权限
权限表
权限地址的索引
权限地址表;
权限地址
2),表的创建
用户表 ;
create table AN_USERS ( userid NUMBER(7) not null, usermail VARCHAR2(30) not null, username VARCHAR2(30) not null, userpwd VARCHAR2(30) default '888888', createdate DATE not null, usertype VARCHAR2(20) default 'users', userip VARCHAR2(30) default '127.0.0.1' ) alter table AN_USERS add constraint AN_USERS_PK primary key (USERMAIL)
角色表;
create table AN_ACTION ( actionid NUMBER(7) not null, usertype VARCHAR2(30) not null, msgname VARCHAR2(30) not null )
权限表;
create table AN_MSG ( msgid NUMBER(30) not null, msgname VARCHAR2(30) not null, menuid NUMBER(30) not null )
权限地址表;存储具体的地址
create table AN_MENU ( menuid NUMBER(30) not null, menu_href VARCHAR2(30) not null )
分析创建的表之间的关系;
1,判断用户是否存在 ,在登陆时查询username 返回null表示不存在该用户
2,如果查询到该用户,
用户表的usertype字段和角色表的usertype相同,角色表的msgname与权限表的msgname相同,
权限表的menuid与权限地址menuid相同;
语句为;查询用户00002的权限
select menu_href from an_menu where menuid in (select menuid from an_msg where msgname in (select msgname from an_action where usertype in (select usertype from an_users where u sername='00002')))
向四张表中插入数据;
select t.*, t.rowid from AN_menu t
insert into AN_MENU values(an_menu_id.nextval,'材料申请表');
insert into AN_MENU values(an_menu_id.nextval,'材料领取');
insert into AN_MENU values(an_menu_id.nextval,'材料申请记录');
insert into AN_MENU values(an_menu_id.nextval,'权限分配');
insert into AN_MENU values(an_menu_id.nextval,'普通员工');
insert into AN_MENU values(an_menu_id.nextval,'员工总人数');
insert into AN_MENU values(an_menu_id.nextval,'个人资料');
insert into AN_MENU values(an_menu_id.nextval,'员工的出勤表');
select t.*, t.rowid from AN_msg t where msgname='供应链管理'
insert into an_msg values(an_msg_id.nextval,'供应链管理',1);
insert into an_msg values(an_msg_id.nextval,'供应链管理',3);
insert into an_msg values(an_msg_id.nextval,'供应链管理',4);
insert into an_msg values(an_msg_id.nextval,'供应链管理',5);
insert into an_msg values(an_msg_id.nextval,'供应链管理',6);
insert into an_msg values(an_msg_id.nextval,'供应链管理',7);
insert into an_msg values(an_msg_id.nextval,'供应链管理',9);
insert into an_msg values(an_msg_id.nextval,'普通供应链管理',2);
insert into an_msg values(an_msg_id.nextval,'普通供应链管理',8);
select t.*, t.rowid from AN_ACTION t
insert into AN_ACTION values(an_action_id.nextval,'users','供应链管理');
insert into AN_ACTION values(an_action_id.nextval,'admin','普通供应链管理');
commit;
select t.*, t.rowid from AN_USERS t
insert into AN_USERS values(an_user_id.nextval,'15616121427','00001','888888',sysdate,'admin','127.0.0.1');
insert into AN_USERS values(an_user_id.nextval,'110','00002','888888',sysdate,'users','127.0.0.1');
执行查询语句
查询00002普通权限
select menu_href from an_menu where menuid in (select menuid from an_msg where msgname in (select msgname from an_action where usertype in (select usertype from an_users where u sername='00002')))
查询00001管理员权限
select menu_href from an_menu where menuid in (select menuid from an_msg where msgname in (select msgname from an_action where usertype in (select usertype from an_users where u sername='00001')))
相关推荐
在C# WinForm应用开发中,权限控制是一个关键的安全组件,它确保了只有授权的用户才能访问特定的功能或数据。本教程将详细讲解如何在C# WinForm环境中实现基于角色的权限控制,包括角色、用户和权限的设置。 首先,...
- **RBAC(Role-Based Access Control)**:基于角色的访问控制是一种常见的权限模型,它将权限与角色关联,而不是直接与用户关联,降低了管理复杂性。 在这个"java用户角色权限" demo中,可能会包含以下组件: - ...
在IT行业中,基于角色的权限控制(Role-Based Access Control,简称RBAC)是一种常见的权限管理系统设计模式,用于高效、安全地管理用户访问权限。本文将深入探讨RBAC模型的原理、核心概念以及如何实现。 首先,...
### 基于角色的用户权限系统设计 随着信息技术的广泛应用,“信息安全”问题变得日益突出。为了确保系统安全,根据OSI(开放式系统互联)模型,提出了五项基本安全服务:身份验证、访问控制、数据完整性、数据机密...
#### 一、角色、权限与用户的基本概念 **1. 权限(Permissions):** - 定义:权限是指在系统中能够执行特定操作的权利或能力。 - 特点:权限通常是系统预设的,例如“查看”、“编辑”、“删除”等。 - 举例:在一个...
在"角色权限控制PPT"中,我们看到的是一个关于如何实施这种控制的案例,特别是针对中国CDCC(中国疾病预防控制中心)结核病预防控制中心统计监测部的用户权限管理系统。 首先,帐户管理是用户权限系统的基础。每个...
总结来说,"将用户关联到角色和权限"的实现是一个关键的安全实践,它通过Laravel的"laravel-permission"包提供了一种灵活和强大的方式来管理用户权限。这个包不仅简化了权限分配的流程,也增强了系统的安全性和可...
通过合理设计用户、角色和权限之间的关系,可以有效地控制用户的访问行为,保护系统的安全性和稳定性。在实际开发过程中,还需要根据具体的业务需求来细化和扩展RBAC模型,确保既能满足当前的需求,又能适应未来的...
基于角色的权限控制(Role-Based Access Control,简称RBAC)是一种有效的访问控制策略,它将权限与角色关联,用户通过角色获取相应的权限。在大型系统中,这种模型能够有效地简化权限管理和分配,尤其是在用户数量...
系统通过权限管理来控制用户对数据库、文件、菜单、按钮等元素的访问。权限可以按需分配,既可以基于角色,也可以直接赋予单个用户。此外,权限管理还包括权限的继承、权限冲突的解决以及权限审计等功能,以确保系统...
权限管理系统不仅可以帮助管理员有效地控制用户访问资源的方式,还可以提高系统的安全性与可用性。本文档将详细介绍一种基于Delphi开发环境的基于角色的权限控制系统的设计与实现方法。 #### 二、系统核心概念解析 ...
在IT领域,尤其是在开发企业级应用时,权限管理和角色控制是至关重要的部分。"C# WinForm角色的权限菜单-源码.zip"提供了一个实现基于角色的权限菜单功能的完整解决方案,适合那些需要在Windows桌面应用程序中进行...
本文将对“登入角色用户权限设计代码”进行详细解析,主要包括三个方面:登录功能实现、用户验证流程及权限控制设计思路。此代码示例提供了基于Web应用程序的用户认证框架,通过分析可以更好地理解如何在实际项目中...
总的来说,"GIS用户权限管理-基于角色的用户权限管理模块"是一个全面且灵活的解决方案,它覆盖了从数据库支持、角色管理、用户权限分配到地图访问控制的各个环节,并且具备二次开发能力,适应不同场景下的GIS应用...
Spring Security或Apache Shiro这样的安全框架常被用来处理认证和授权,它们可以轻松地实现用户的登录、权限验证以及角色控制等功能。 其次,Layui是一个轻量级的前端UI框架,它提供了丰富的组件和精美的界面设计,...
权限是Oracle数据库中控制用户对特定对象(如表、视图等)或执行某些操作(如创建表、登录数据库等)的能力。权限分为两大类: 1. **系统权限**:是授予用户使用数据库特定功能的权限。例如,`DBA`权限允许用户执行...
RBAC(Role-Based Access Control)是一种常用的安全管理机制,它通过定义不同的角色以及这些角色对应的权限来实现对系统的访问控制。 #### 数据库结构设计 ##### 用户表 (RBAC_User) 用户表用于存储系统中的所有...
综上所述,用户权限管理菜单的设计和实现是一个涉及多方面考虑的过程,包括角色定义、权限划分、权限分配、权限控制和审计等。在商业级软件中,这些功能的完善程度直接影响到系统的安全性、稳定性和用户体验。通过...