权限管理,必涉及到用户与角色关系。

下面的做法,是对某一个用户授权拥有某个角色。一个用户可拥有多个角色。

建立一张表[UsersRole]其中有三个字段,[UsersId]注册用户ID,[RoleId]角色表的主ID,还有一个字段[IsEnable]数据类型为BIT是记录用户是否拥有此角色。

表的结构如下:

代码

SET ANSI_NULLS ON
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

接下来,写分配角色存储过程:

代码

SET ANSI_NULLS ON
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的介面,太概如下:

权限管理----用户与角色关系相关推荐

  1. springBoot+springSecurity 数据库动态管理用户、角色、权限(二)

    序:  本文使用springboot+mybatis+SpringSecurity 实现数据库动态的管理用户.角色.权限管理 本文细分角色和权限,并将用户.角色.权限和资源均采用数据库存储,并且自定义 ...

  2. linux服务器管理公司用户,在Linux服务器Jenkins中管理用户和角色的方法

    下面将教你如何在Linux服务器Jenkins中管理用户和角色,它需要创建角色并分配给用户,你需要运行Jenkins服务器才能操作接下来的工作. 安装Jenkins参考文章 在Jenkins中管理用户 ...

  3. sybase用户权限管理3 _角色授予

    为登录用户授予角色 角色,或者受角色授权方式,是ASE为登录用户(数据库用户)执行某类操作所进行的集团授权方式,所谓的某类操作,可能是某种系统管理任务,也可能是某类应用操作,这些操作需要ASE提供安全 ...

  4. oracle中角色和用户权限,Oracle用户、角色、权限管理

    用户在会话的权利上,应该有其他操作的权利:Oracle的用户和口令不区分大小写,真是让人大跌眼镜:Oralce中,所有用户必须明确被 create or replace type address as ...

  5. oracle中角色的用户和权限管理,用户角色与权限控制

    一.oracle中的用户 系统用户:sys.system(系统创建的用户) 登录命令:sqlplus sys/密码 as sysdba 备注:sys是oracle数据库中最高权限用户,角色为sysdb ...

  6. 转:权限管理——用户认证和用户授权

    转自: https://blog.csdn.net/xdd19910505/article/details/51926540 因为做了权限的项目经理,so,恶补一下一个权限框架:shiro.其实作为框 ...

  7. clickhouse 如何使用SQL 管理用户和角色

    clickhouse 数据库默认的用户是default ,clickhouse 数据库的用户管理有两种方式: 1.直接修改配置文件(user.xml) 在用户配置文件里面配置需要创建的用户. 2.使用 ...

  8. 权限管理——用户认证和用户授权

    因为做了权限的项目经理,so,恶补一下一个权限框架:shiro.其实作为框架首要目标是易于使用和理解.安全有时候是很复杂的,甚至是痛苦的,但框架没有必要这样.框架应该尽可能掩盖复杂的地方,露出一个干净 ...

  9. Mysql —— C语言链接mysql数据库,用户 角色 权限(用户根据角色的不同拥有增删改查的权限、用户有三种认证方式)

    db_修改过(用户 角色 权限): 1.新增用户时候id 改为最大id值加一,之前用的select查看出来的记录数加一,删除后再增加会出错: 2.删除用户时候,若该用户创建过其他用户(不能改此用户名. ...

  10. linux的用户及权限管理,用户及权限管理

    一.Linux用户.组的概念 1.用户 管理员:root,0 其他用户:1-65535 系统用户:1-499,守护进程获取资源进行权限分配 普通用户:500+,交互式登陆 2.组 管理员组:root, ...

最新文章

  1. bzoj1588[HNOI2002]营业额统计——双向链表
  2. OpenStack 通用设计思路
  3. Environment.CurrentDirectory 的一个坑
  4. 中国的EMM市场迎来爆发期?
  5. 分布式是写出来的(二)
  6. vb mysql边记录边统计_vb6 数据库 增加记录
  7. Android -- 启动Service并传递数据
  8. vscode之调试es6代码
  9. 用存储过程DataFactory准备测试数据
  10. Wingdings特殊字符及符号对照表
  11. 世界各国国家代号与区号
  12. MATLAB 电子书
  13. 操作系统中ESP和MSR分区
  14. MPB:南农韦中组-​根系分泌物调控土壤微生物群落结构和功能的研究方法
  15. ubuntu系统调节电脑亮度
  16. Github连接不上问题
  17. Git 最著名报错 “ERROR: Permission to XXX.git denied to user”终极解决方案
  18. mysql安装,以及初始化密码
  19. linux操作系统使用广泛吗,为何说Ubuntu是使用最广泛Linux操作系统的五大理由
  20. 洛谷 P4869 albus就是要第一个出场(求一个数在线性基中的排名)

热门文章

  1. linux 装gcc组件,linux下安装redis组件报错-gcc报错
  2. 微星安装双系统Linux卡顿,微星笔记本-gf63-1050-win10-ubuntu16双系统安装
  3. 力扣-1534. 统计好三元组
  4. 7-7 整数的分类处理 (20 分)
  5. L1-032 Left-pad (20 分)—团体程序设计天梯赛
  6. 我对安卓recovery的流程大致总结
  7. Ubuntu中创建、删除、更改、移动文件的命令
  8. 关于IEnumeratorT泛型枚举器 和 IEnumerableT
  9. PHP微信公众号开发常用功能
  10. 《JavaScript 高级程序设计》第三章:基本概念