五表权限_表格设置查看权限和编辑权限
大家好,又见面了,我是你们的朋友全栈君。
设计基础:用户、角色、权限三大核心表,加上用户角色、角色权限两个映射表(用于给用户表联系上权限表)。这样就可以通过登录的用户来获取权限列表,或判断是否拥有某个权限。
大致用到5张表:用户表(UserInfo)、角色表(RoleInfo)、菜单表(MenuInfo)、用户角色表(UserRole)、角色菜单表(RoleMenu)。
各表的大体表结构如下:
1、用户表(UserInfo):Id、UserName、UserPwd
2、角色表(RoleInfo):Id、RoleName
3、菜单表(MenuInfo):Id、MenuName
4、用户角色表(UserRole):Id、UserId、RoleId
5、角色菜单表(RoleMenu):Id、RoleId、MenuId
最关键的地方是,某个用户登录时,如何查找该用户的菜单权限?其实一条语句即可搞定:
假如用户的用户名为Arthur,则他的菜单权限查询如下:
Select m.Id,m.MenuName from MenuInfo m ,UserInfo u, UserRole ur, RoleMenu rm Where m.Id = rm.MenuId and ur.RoleId = rm.RoleId and ur.UserId = u.Id and u.UserName = ‘Arthur’
任何权限的需求,都是为广义的用户分配角色,角色拥有广义的权限。角色是最重要的中枢,隐藏做幕后黑手,从不出现在业务代码里,用行话说就是解除了用户和权限的直接耦合。
角色把用户抽象化了,几百个用户变成成几个角色,用户->角色->权限写成通用判断权限的方法:currUser.IsHave(xx权限)。核心就是一个sql联表查询语句,查询条件为用户id。
例如: 部门权限:部门也是一种用户,建立 部门表、部门角色表。通用权限方法里加上 当前部门->部门所属角色->权限 职位权限:职位也是一种用户,建立职位表、职位角色表,同上 菜单:也是一种权限,建立 菜单表、角色菜单表,就把菜单纳入了权限管理。通用权限方法里加上 角色列表->权限、菜单
使用Microsoft SQL Server应用代码构建如下:
1、用户信息表:
create table employee ( userid varchar(50) not null, –用户ID username varchar(100), –用户名 userpassword varchar(100), –密码 … … … … ) alter table employee –主键 add constraint pk_employee_userid primary key (userid) 2、角色表:
create table role ( roleid varchar(50) not null, –角色Id rolename varchar(100), –角色名称 ) alter table tole –主键 add constraint pk_role_roleid primary key (roleid) 3、权限菜单表
create table popedom ( popedomid int identity(1,1) not null, –权限Id popedomname varchar(100), –权限名称 popedomfatherid int, –权限父ID popedomurl varchar(100) –树的连接路径 … … ) er table popedom –主键 add constraint PK_popedom primary key (popedomid) 添加数据如 insert into popedom values(‘我的办公桌’,0,’’) insert into popedom values(‘电子邮箱’,1,’…/mail/EmaiolManage.aspx’) (添加数据的原则是一级接点的popedomfatherid 为0,如果是(我的办公桌)下面的接点,它们的popedomfatherid为(我的办公桌)的主键)
4、用户与角色关系表
create table user_role ( connectionid int identity(1,1) not null, –关系ID userid varchar(50) not null, –管理员表ID roleid varchar(50) not null –角色Id ) alter table user_role –主键 add constraint PK_admin_role primary key(connectionid) 5、角色与权限关系表
create table role_popedom –角色与权限表 ( connectionid int identity(1,1), –关系Id roleid varchar(50) not null, –角色ID popedomid int not null, –权限Id popedom int –权限 (1为可用,2为不可用) ) alter table role_popedom –主键 add constraint PK_role_popedom primary key(connectionid) –主键
6、五表之间的关联
`
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/187845.html原文链接:https://javaforall.cn
相关文章
- chrome getUserMedia errors - 网站手动设置权限
- 【SSM – SpringMVC篇】09 SpringMVC拦截器Interceptor详解,多个拦截器的执行顺序,拦截器进行权限判断和日志记录,拦截器和过滤器的区别
- Oracle查看那些用户具有DBA权限「建议收藏」
- Qml读写文件_读写文件权限怎么开
- 微软推出新服务,扩大企业对其威胁情报库的访问权限
- 权限Linux查看文件权限的快捷方式(linux判断文件)
- Linux查看文件权限的简单方法(linux权限查询)
- Linux中查看文件权限的方法(linux查看文件权限)
- 掌握Oracle权限查看技巧(oracle权限查看)
- Oracle数据库授予建表权限的指南(oracle授权建表权限)
- Linux下使用用户组控制权限的实践(linux给用户组权限)
- 查看Oracle用户权限:实现更高数据库安全性(查看oracle用户权限)
- Oracle表权限赋予解决方案(oracle表赋权)
- 权限Linux查看当前目录权限的简易方法(linux查找当前目录)
- 掌握Linux文件权限的入门实践(linux文件权限练习)
- [NSudo] 通过这款开源工具以TrustedInstaller权限运行各种需要的文件
- 掌握Oracle权限管理:查看权限的技巧(oracle查看权限)
- MySQL权限管理:实现安全的数据访问(mysql权限控制)
- 查看MySQL用户权限的方法(mysql查看权限)
- Linux查看特殊权限:一步搞定(linux查看特殊权限)
- 深入MySQL: 查看用户及其权限(mysql如何查看用户)
- 查看MySQL用户权限:一个安全必要的步骤(查看mysql用户的权限)
- 学会Linux命令ID功能,管理用户、组与权限(linux命令id)
- 权限如何查看MySQL用户权限信息(mysql怎么查看用户)
- 名下不同权限MySQL:设置不同用户具有不同权限(mysql同一用户)
- 权限Oracle中查看角色权限的简便方法(oracle查看角色)
- Linux用户组命令,管理用户权限!(linux用户组命令)
- 如何在linux上设置文件的执行权限(linux设置执行权限)
- Linux的权限管理:学习如何给文件添加权限(linux给文件加权限)
- Linux下查看组权限的方法(linux 查看组的权限)
- 深入探讨MySQL数据库权限管理(查看mysql数据库权限)
- Linux系统下如何查看及修改文件读写权限
- nginx设置上传目录无执行权限的方法
- android权限大全分享