权限管理----用户与角色关系
权限管理,必涉及到用户与角色关系。
下面的做法,是对某一个用户授权拥有某个角色。一个用户可拥有多个角色。
建立一张表[UsersRole]其中有三个字段,[UsersId]注册用户ID,[RoleId]角色表的主ID,还有一个字段[IsEnable]数据类型为BIT是记录用户是否拥有此角色。
表的结构如下:
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[UsersRole](
[UsersId] [int] NOT NULL,
[RoleId] [smallint] NOT NULL,
[IsEnable] [bit] NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[UsersRole] WITH CHECK ADD CONSTRAINT [FK_UsersRole_Role] FOREIGN KEY([RoleId])
REFERENCES [dbo].[Role] ([RoleId])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[UsersRole] CHECK CONSTRAINT [FK_UsersRole_Role]
GO
ALTER TABLE [dbo].[UsersRole] WITH CHECK ADD CONSTRAINT [FK_UsersRole_Users] FOREIGN KEY([UsersId])
REFERENCES [dbo].[Users] ([UsersId])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[UsersRole] CHECK CONSTRAINT [FK_UsersRole_Users]
GO
接下来,写分配角色存储过程:
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[usp_UsersRole_AssignRole]
(
@UsersId int,
@RoleId smallint,
@IsEnable bit
)
AS
BEGIN TRANSACTION
DECLARE @err int
--判断[UsersRole]表中,此用户与此角色是否存在记录
IF (SELECT count(*) FROM [UsersRole] WHERE [UsersId] = @UsersId AND [RoleId] = @RoleId ) > 0
BEGIN
--如果存在,作更新动作
UPDATE [UsersRole] SET [IsEnable]= @IsEnable WHERE [UsersId] = @UsersId AND [RoleId] = @RoleId
SET @err=@@ERROR
IF @err<>0
ROLLBACK TRANSACTION
END
ELSE
BEGIN
--如果不存在,做插入记录动作
INSERT INTO [UsersRole] ([UsersId] ,[RoleId],[IsEnable] ) VALUES (@UsersId ,@RoleId ,@IsEnable)
SET @err=@@ERROR
IF @err<>0
ROLLBACK TRANSACTION
END
COMMIT TRANSACTION
GO
在asp.net的介面,太概如下:
权限管理----用户与角色关系相关推荐
- springBoot+springSecurity 数据库动态管理用户、角色、权限(二)
序: 本文使用springboot+mybatis+SpringSecurity 实现数据库动态的管理用户.角色.权限管理 本文细分角色和权限,并将用户.角色.权限和资源均采用数据库存储,并且自定义 ...
- linux服务器管理公司用户,在Linux服务器Jenkins中管理用户和角色的方法
下面将教你如何在Linux服务器Jenkins中管理用户和角色,它需要创建角色并分配给用户,你需要运行Jenkins服务器才能操作接下来的工作. 安装Jenkins参考文章 在Jenkins中管理用户 ...
- sybase用户权限管理3 _角色授予
为登录用户授予角色 角色,或者受角色授权方式,是ASE为登录用户(数据库用户)执行某类操作所进行的集团授权方式,所谓的某类操作,可能是某种系统管理任务,也可能是某类应用操作,这些操作需要ASE提供安全 ...
- oracle中角色和用户权限,Oracle用户、角色、权限管理
用户在会话的权利上,应该有其他操作的权利:Oracle的用户和口令不区分大小写,真是让人大跌眼镜:Oralce中,所有用户必须明确被 create or replace type address as ...
- oracle中角色的用户和权限管理,用户角色与权限控制
一.oracle中的用户 系统用户:sys.system(系统创建的用户) 登录命令:sqlplus sys/密码 as sysdba 备注:sys是oracle数据库中最高权限用户,角色为sysdb ...
- 转:权限管理——用户认证和用户授权
转自: https://blog.csdn.net/xdd19910505/article/details/51926540 因为做了权限的项目经理,so,恶补一下一个权限框架:shiro.其实作为框 ...
- clickhouse 如何使用SQL 管理用户和角色
clickhouse 数据库默认的用户是default ,clickhouse 数据库的用户管理有两种方式: 1.直接修改配置文件(user.xml) 在用户配置文件里面配置需要创建的用户. 2.使用 ...
- 权限管理——用户认证和用户授权
因为做了权限的项目经理,so,恶补一下一个权限框架:shiro.其实作为框架首要目标是易于使用和理解.安全有时候是很复杂的,甚至是痛苦的,但框架没有必要这样.框架应该尽可能掩盖复杂的地方,露出一个干净 ...
- Mysql —— C语言链接mysql数据库,用户 角色 权限(用户根据角色的不同拥有增删改查的权限、用户有三种认证方式)
db_修改过(用户 角色 权限): 1.新增用户时候id 改为最大id值加一,之前用的select查看出来的记录数加一,删除后再增加会出错: 2.删除用户时候,若该用户创建过其他用户(不能改此用户名. ...
- linux的用户及权限管理,用户及权限管理
一.Linux用户.组的概念 1.用户 管理员:root,0 其他用户:1-65535 系统用户:1-499,守护进程获取资源进行权限分配 普通用户:500+,交互式登陆 2.组 管理员组:root, ...
最新文章
- bzoj1588[HNOI2002]营业额统计——双向链表
- OpenStack 通用设计思路
- Environment.CurrentDirectory 的一个坑
- 中国的EMM市场迎来爆发期?
- 分布式是写出来的(二)
- vb mysql边记录边统计_vb6 数据库 增加记录
- Android -- 启动Service并传递数据
- vscode之调试es6代码
- 用存储过程DataFactory准备测试数据
- Wingdings特殊字符及符号对照表
- 世界各国国家代号与区号
- MATLAB 电子书
- 操作系统中ESP和MSR分区
- MPB:南农韦中组-​根系分泌物调控土壤微生物群落结构和功能的研究方法
- ubuntu系统调节电脑亮度
- Github连接不上问题
- Git 最著名报错 “ERROR: Permission to XXX.git denied to user”终极解决方案
- mysql安装,以及初始化密码
- linux操作系统使用广泛吗,为何说Ubuntu是使用最广泛Linux操作系统的五大理由
- 洛谷 P4869 albus就是要第一个出场(求一个数在线性基中的排名)
热门文章
- linux 装gcc组件,linux下安装redis组件报错-gcc报错
- 微星安装双系统Linux卡顿,微星笔记本-gf63-1050-win10-ubuntu16双系统安装
- 力扣-1534. 统计好三元组
- 7-7 整数的分类处理 (20 分)
- L1-032 Left-pad (20 分)—团体程序设计天梯赛
- 我对安卓recovery的流程大致总结
- Ubuntu中创建、删除、更改、移动文件的命令
- 关于IEnumeratorT泛型枚举器 和 IEnumerableT
- PHP微信公众号开发常用功能
- 《JavaScript 高级程序设计》第三章:基本概念