权限管理----用户与模块关系
用户与模块关系功能,您可以写成跟用户与角色关系一样。不过下面实现方法会看到更多的权限控制。
介面如下截图:
数据表结构如下:
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[UsersModule](
[UsersId] [int] NOT NULL,
[ModuleId] [smallint] NOT NULL,
[Purview] [int] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[UsersModule] WITH CHECK ADD CONSTRAINT [FK_UsersModule_Module] FOREIGN KEY([ModuleId])
REFERENCES [dbo].[Module] ([ModuleId])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[UsersModule] CHECK CONSTRAINT [FK_UsersModule_Module]
GO
ALTER TABLE [dbo].[UsersModule] WITH CHECK ADD CONSTRAINT [FK_UsersModule_Users] FOREIGN KEY([UsersId])
REFERENCES [dbo].[Users] ([UsersId])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[UsersModule] CHECK CONSTRAINT [FK_UsersModule_Users]
GO
接下来,我们得写分配权限的存储过程:
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[usp_UsersModule_AssignModuleAction]
(
@UsersId int,
@ModuleId smallint,
@Browsing bit,
@Searching bit,
@Creating bit,
@Editing bit,
@Updating bit,
@Deleting bit,
@Erasing bit,
@Submiting bit,
@Auditing bit,
@Reporting bit,
@Receiving bit,
@Delivering bit
)
AS
BEGIN TRANSACTION
DECLARE @Purview int =0
IF @Browsing = 1
SET @Purview = @Purview + 1
IF @Searching = 1
SET @Purview = @Purview + 2
IF @Creating = 1
SET @Purview = @Purview + 4
IF @Editing = 1
SET @Purview = @Purview + 8
IF @Updating = 1
SET @Purview = @Purview + 16
IF @Deleting= 1
SET @Purview = @Purview + 32
IF @Erasing = 1
SET @Purview = @Purview + 64
IF @Submiting = 1
SET @Purview = @Purview + 128
IF @Auditing = 1
SET @Purview = @Purview + 256
IF @Reporting = 1
SET @Purview = @Purview + 512
--如果有更多操作权限,可以此添加
IF @Purview >0 AND @Browsing =0
SET @Purview = @Purview +1
IF (SELECT count(*) FROM [UsersModule] WHERE [UsersId] = @UsersId AND [ModuleId] = @ModuleId )>0
BEGIN
UPDATE [UsersModule] SET [Purview]=@Purview WHERE [UsersId] = @UsersId AND [ModuleId] = @ModuleId
IF @@ERROR<>0
ROLLBACK TRANSACTION
END
ELSE
BEGIN
INSERT INTO [UsersModule] ([UsersId] ,[ModuleId],[Purview] ) VALUES (@UsersId ,@ModuleId ,@Purview)
IF @@ERROR<>0
ROLLBACK TRANSACTION
END
COMMIT TRANSACTION
GO
权限管理----用户与模块关系相关推荐
- 基于 Python/Vue/D2 实现的CRM管理系统(客户管理,产品管理,商机管理,合同管理,客户公海,权限管理等业务模块)
目录 一.系统概述 业务模块 部署方式 二.效果展示 登录页面 客户页面 联系人 产品类目 产品 合同 消息中心 供应商 客户公海 三.关键代码 后端 http 使用 python django 后端 ...
- 权限管理,pymysql模块
权限管理 权限管理重点 MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL ...
- 转:权限管理——用户认证和用户授权
转自: https://blog.csdn.net/xdd19910505/article/details/51926540 因为做了权限的项目经理,so,恶补一下一个权限框架:shiro.其实作为框 ...
- linux的用户及权限管理,用户及权限管理
一.Linux用户.组的概念 1.用户 管理员:root,0 其他用户:1-65535 系统用户:1-499,守护进程获取资源进行权限分配 普通用户:500+,交互式登陆 2.组 管理员组:root, ...
- php 超级管理员,WordPress超级管理员功能,超权限管理用户,可修改登录名
wordpress本身的用户管理是以博客用户为导向的,因此其后台修改用户信息仅限于博客用户的角度可以修改的信息,而管理员虽然可以修改其他用户信息,但有一个问题是不能修改用户名和昵称(这里的昵称和显示名 ...
- 权限管理——用户认证和用户授权
因为做了权限的项目经理,so,恶补一下一个权限框架:shiro.其实作为框架首要目标是易于使用和理解.安全有时候是很复杂的,甚至是痛苦的,但框架没有必要这样.框架应该尽可能掩盖复杂的地方,露出一个干净 ...
- oracle中角色的用户和权限管理,用户角色与权限控制
一.oracle中的用户 系统用户:sys.system(系统创建的用户) 登录命令:sqlplus sys/密码 as sysdba 备注:sys是oracle数据库中最高权限用户,角色为sysdb ...
- mysql - user/privileges/用户与权限/用户权限/管理用户权限
目录 1.用户权限有哪些 2.用户权限操作语句 3.授权说明与授权原则 1.用户权限有哪些 总共28个权限 mysql数据库中的3个权限表:user .db. host 权限表的存取过程是: 1)先从 ...
- ASP.NET学生信息管理系统-权限管理-用户资料
程序测试空间:http://asp.igozjj.com 边缘博客%C3[&F g,F#K+RM [p.rl#[ 用户资料,是添加用户的, Goq A8i1 每一个用户,都含有编号 用户姓名 ...
- linux根-文件系统-目录管理-文件管理-用户及权限详解-用户组-用户管理-权限管理...
一 .Linux文件结构 文件结构是文件存放在磁盘等存贮设备上的组织方法.主要体现在对文件和目录的组织上. 目录提供了管理文件的一个方便而有效的途径. Linux使用标准的目录结构,在安装的时候,安装 ...
最新文章
- 【转】老程序猿给新程序猿的13点建议
- java 8位随机数_JAVA中生成指定位数随机数的方法总结
- 【控制】《多智能体系统的动力学分析与设计》徐光辉老师-目录
- (23)Vue.js组件介绍
- hibernate基本类型映射
- “OSPF” DR与BDR
- 中国数控机床行业市场竞争态势及投资战略规划报告2022-2028年版
- 自抗扰控制matlab仿真,自抗扰控制器的simulink建模与仿真.pdf
- c语言上机试题8,计算机考试二级C语言上机试题下[8]
- Javascript和C#正则只保留英文、数字、汉语、空格
- c盘找不到appdata
- javascript书签工具
- Slider网站欣赏
- 计算机发展简史的ppt教程,计算机发展简史PPT.ppt
- 拼多多——多多的字符变换
- 2021 => KVM冷迁移与热迁移
- GPS坐标系与实际地图坐标系
- android 账号同步功能吗,android账号管理与同步机制
- 首席新媒体黎想教程:短视频内容运营方法论
- LeetCode 21. 合并两个有序链表(链表)
热门文章
- ArcGIS学习总结(16)——反距离权重法插值及批处理(IDW)
- android ui自动化 mock,移动端自动化多机并行测试-数据 mock 篇
- Docker与容器化-04-Docker私有仓库与镜像迁移备份
- Mybatis-01-简介及入门
- 解构流存储 — Pravega,与 Flink 构建端到端的大数据流水处理线
- android-gradle-plugin3.0.1源码分析
- 图解微服务技术架构体系
- 在php定界符中,PHP中的定界符 - ho俊的个人空间 - OSCHINA - 中文开源技术交流社区...
- php实现观看记录,PHP实现浏览历史记录
- imp 只导表前10条数据_2020年玉石行情,从10条数据就能略窥一二