权限_权限管理 - CSDN
权限 订阅
权限是指为了保证职责的有效履行,任职者必须具备的,对某事项进行决策的范围和程度。 展开全文
权限是指为了保证职责的有效履行,任职者必须具备的,对某事项进行决策的范围和程度。
信息
中文名
权限
外文名
privilege
词    性
名词
释    义
职能权利范围
权限含义
1、职能权利范围2、在法律规定的权限内。职权范围。权限是指为了保证职责的有效履行,任职者必须具备的,对某事项进行决策的范围和程度。它常常用“具有批准……事项的权限”来进行表达。
收起全文
精华内容
参与话题
  • 本课程从0到1实现一个基于SpringBoot+Jpa+JWT+Spring Security+Vue+ElementUI整合前后端分离权限后台管理系统,数据库采用的是:mysql5.7,本项目主要功能模块有:用户管理、角色管理、菜单管理、部门管理、岗位管理...
  • 常见模块设计--权限管理(一)

    万次阅读 多人点赞 2017-05-31 23:29:57
    也就是说一个用户可以有多个角色,一个角色可以有多个权限,通过将角色和权限分离开来提高设计的可扩展性,通常一个用户有多个角色,一个角色也会属于多个用户(多对多),一个角色有多个权限,一个权限也会属于多个...

    1.基于 RBAC(Role-based Access Control)权限访问控制。也就是说一个用户可以有多个角色,一个角色可以有多个权限,通过将角色和权限分离开来提高设计的可扩展性,通常一个用户有多个角色,一个角色也会属于多个用户(多对多),一个角色有多个权限,一个权限也会属于多个角色(多对多)。

    2.最简单版本
    假设:我们拿到一个用户对象,
    可以通过:用户id –>角色id–>角色名称(什么角色)–>权限id –> 权限标识 –>获取权限。最终获取权限获取角色信息。
    这里写图片描述
    角色:可以简单理解为许多权限的集合。比如二级管理员,三级管理员。

    3.用户组模式
    如果用户数量比较庞大,可以加入用户组模式。需要给用户分组,每个用户组内有多个用户,可以给用户授权外,也可以给用户组授权。最终用户拥有的所有权限 = 用户个人拥有的权限+该用户所在用户组拥有的权限。(这个设计类似 svn 中的用户权限,比如,将一个svn用户加入到 group中,然后设置group的权限,以后加入更多的用户,就不用再一一设置用户的权限了。)

    这里写图片描述

    4.权限分类
    大部分是针对功能模块,比如对信息记录的增删改(信息状态修改,文件的删除修改等),菜单的访问,输入框,按钮的可见性,是否可以新增下级管理员等。有些权限设计,会把功能操作作为一类,而把文件、菜单、页面元素等作为另一类,这样构成“用户-角色-权限-资源”的授权模型。而在做数据表建模时,可把功能操作和资源统一管理,也就是都直接与权限表进行关联,这样可能更具便捷性和易扩展性。

    这里写图片描述

    5.完整版
    请留意权限表中有一列“权限类型”,我们根据它的取值来区分是哪一类权限,如“MENU”表示菜单的访问权限、“OPERATION”表示功能模块的操作权限、“FILE”表示文件的修改权限、“ELEMENT”表示页面元素的可见性控制等。

    优点:(1)不需要区分哪些是权限操作,哪些是资源,(实际上,有时候也不好区分,如菜单,把它理解为资源呢还是功能模块权限呢?)。
    (2)方便扩展,当系统要对新的东西进行权限控制时,我只需要建立一个新的关联表“权限XX关联表”,并确定这类权限的权限类型字符串。

    这里要注意的是,权限表与权限菜单关联表、权限菜单关联表与菜单表都是一对一的关系。(文件、页面权限点、功能操作等同理)。也就是每添加一个菜单,就得同时往这三个表中各插入一条记录。这样,可以不需要权限菜单关联表,让权限表与菜单表直接关联,此时,须在权限表中新增一列用来保存菜单的ID,权限表通过“权限类型”和这个ID来区分是种类型下的哪条记录。

    这里写图片描述

    展开全文
  • 权限设计-系统登录用户权限设计

    万次阅读 多人点赞 2018-01-08 09:56:59
    1. 权限等级不同:公司领导登录后可查看所有员工信息,部门领导登录后只可查看本部门员工的信息,员工登录后只可查看自己的信息; 2. 访问权限不同:如公司领导登录后,可查看员工薪水分布界面,而员工则不能看到...
    需求分析—场景

    假设需要为公司设计一个人员管理系统,并为各级领导及全体员工分配系统登录账号。有如下几个要求:
    1. 权限等级不同:公司领导登录后可查看所有员工信息,部门领导登录后只可查看本部门员工的信息,员工登录后只可查看自己的信息;
    2. 访问权限不同:如公司领导登录后,可查看员工薪水分布界面,而员工则不能看到;
    3. 操作权限不同:如系统管理员可以在信息发布界面进行增删改查发布信息,而普通员工只可以在信息发布界面进行查看,不能修改、删除和新增。

    功能分析

    1. 登录一个系统,基本都需要用户输入用户名、密码;
    2. 每个用户的角色不同,则其访问权限一般也不同,如:
           系统管理员:可以查看所有界面;
           普通用户:只能查看部分界面。
    3. 不同的用户,即使可以查看同样的界面,但在该界面上可进行的操作权限也不同,如:
           用户1:可以在界面1上进行增删改查;
           用户2:只可以在界面1上查看,不具备增删改功能;
    4. 不同用户基本都对应不同角色,如:用户1、用户2分别对应管理员角色、操作员角色,角色之间也存在权限等级的差异,如:
          角色1:对应省级管理员;==>可以查看该省下的所有学校信息;
          角色2:对应市级管理员;==>可以查看该市下的所有学校信息;
          角色3:对应县级管理员;==>可以查看该县下的所有学校信息;
    不管是省、市、县哪个系统管理员,他们可访问的界面都是相同的(即访问权限相同),且在每个界面上可进行的操作权限也相同的,不同的是每个管理员角色可以访问的学校个数和学校范围不同,这里称这种不同为:权限等级不同;

    总结:
    从上面的分析中,主要涉及到以下几个概念:
    1.角色:
           如系统管理员角色,系统操作员角色,普通用户角色;
           不同的角色,其访问权限是不同的,即可访问的模块(界面)集合是不同的;
           角色的权限等级也不同,权限等级如:公司领导、部分领导、普通员工;
    2. 模块:(界面)
        模块就是指具体的界面,每个模块上又有不同的操作,如增删改查;
    3. 访问权限:确定角色可以访问的模块(界面)集合;
    4. 操作权限:确定可以在各模块(界面)上进行的操作集合,如增删改查;
    5. 权限等级:即确定角色可以访问的范围,如:
             角色1:权限等级为公司领导,则可以查看公司所有员工信息;
             角色2:权限等级为部门领导,则只可以查看该部门所有员工信息。


    数据库设计

    总体模型:




    1.模块定义表:
    模块是分层级的,如:信息管理–>联系方式管理;

    每个模块都有上级模块。

    2. 角色定义表:
    含有角色权限等级,用于为角色分配权限等级;
    角色权限等级:是一个菜单选项,包括公司领导、部门领导、普通员工;

    3.授权定义表:
    用于给角色分配访问权限以及为每个模块分配操作权限;
    1个角色可以含有多个模块,同样1个模块可以分配给多个角色,所以角色和模块是多对多的关系;这种多对多的关系可以使用关系表来实现,即通过联合主键和实现关系表:

    表中含有字段“操作权限”,用于给每个界面分配操作权限,见下图:
    若该模块有增删改查功能,则操作权限15,即二进制的“1111”,若该模块只有查看功能,则操作权限为2,即二进制的“0010”,同样的,“0111”表示该模块有增、改、查功能;

    4. 系统用户表:

    该表中“角色权限等级”—>应与“所属角色”中的权限等级保持一致,之所以该表中重复该字段,是为了方便查询。
    角色权限等级取值:
      1. 公司领导:company_id不能为空;
      2. 部门领导:company_id、dept_id不能为空;
      3. 普通员工:company_id、dept_id、staff_id不能为空;



    登录执行过程

    1. 系统登录时,首先输入用户名、密码;
    2. 确定访问权限
       2.1 判断该用户的“角色编号”;
       2.2 在“授权定义表”中根据该“角色编号”查找相应的模块,找到的模块集合即是访问权限;
    3. 确定操作权限
       3.1 在2.2步骤中查询到的每个模块都有相应的操作权限,即构成了每个模块的操作权限;
    4. 确定权限等级
       4.1 结合该用户的“角色权限等级”+“公司标识”+“部门标识”+“员工标识”,到员工信息表中去查找相应员工,具体如下:
       角色权限等级取值:
       1. 公司领导:查找<员工信息表.公司标识==该用户.公司标识>的所有用户
       2. 部门领导:查找<员工信息表.公司标识==该用户.公司标识 && 
                                      员工信息表.部门标识==该用户.部门标识>的所有用户
       3. 普通员工:查找<员工信息表.公司标识==该用户.公司标识 && 
                                      员工信息表.部门标识==该用户.部门标识 && 
                                      员工信息表.员工标识==该用户.公司标识>的所有用户
       

    展开全文
  • 分级权限分配

    千次阅读 2019-05-30 17:51:27
    _=1559207520060 ...多部门共用系统、各个部门有其自己的管理员,并给其部门员工分配权限,即实现多级管理员层层分配,分级管理员只能管理自己职责范围内的模板权限分配,FineReport自主...

    https://help.finereport.com/doc-view-711.html?&_=1559207520060

     

     

     

    1. 版本

     

     

      报表服务器版本
      10.0

    2. 描述

    多部门共用系统、各个部门有其自己的管理员,并给其部门员工分配权限,即实现多级管理员层层分配,分级管理员只能管理自己职责范围内的模板权限分配,FineReport自主开发的数据决策系统中提供了多级权限分配功能来实现权限的层级分配,下面介绍使用方法。

     

    3. 解决思路

    系统总管理员在权限管理中开启分级授权选项,将授权权限赋给下级管理员的角色,同时配置该角色所能分配权限的角色(对象),此时,下级管理员的角色登录系统时,就能将其有权授权的权限分配给对应的角色。

    4. 示例

    下面给技术支持部长部门职位分配参数查询和填报录入的查看权限和授权权限,并将平台管理面板中定时调度的查看权限和授权权限分配过去,同时其可以进行权限管理的部门为整个技术支持部门。

    4.1 开启分级权限管理

    管理员账号登录决策系统,点击管理系统>权限管理,可以看到管理界面分配报表权限面板中只可以分配报表的查看权限,没有授权权限,点击设置按钮,在分级权限管理标签后面开启分级授权,点击确定,页面回到权限管理主界面,此时,可以看到权限项面板后面多了一个授权的勾选项,如下图:

    注:未开启分级权限管理里面的分级授权选项时,权限项是不会出现授权选项的。

    4.2 权限分配

    为技术支持部长职位进行分配权限,如上描述,在权限配置>部门职位选项中选中技术支持>部长,在右侧的权限项中选择报表,勾选参数查询和填报录入后面的授权复选框,此时查看复选框也会自动勾选上,以及平台管理选项里面的定时调度查看和授权复选框和权限配置的查看复选框,如下图:

    注:开启了分级授权选项,如果需要给某个用户分配授权权限,那么必须给该用户分配平台管理标签项中的权限管理的查看权限。

    注:如果次级管理员需要将报表和平台管理的使用权限分配给其他人,首先该用户必须要有该报表和平台管理的授权权限。 

    注:如果次级管理员需要编辑角色内用户(添加/删除),还需将用户管理的查看权限赋给次级管理员。

    4.3 选择可管理部门/角色

    上面将技术支持部长职位的报表权限和管理平台权限都已经设置好之后,下面设置该用户可以将这些权限分配下去的用户,

    在可管理部门/角色面板中选择技术支持整个部门,如下图:

    5. 效果查看

    5.1 查看权限

    登出系统,用技术支持部长账号Alice账号登录,可以看到该角色拥有参数查询、填报录入、定时调度的查看和授权权限以及权限管理的查看权限,如下图:

    5.2 授权权限

    选择管理系统>权限管理,可看到部门职位列表中只有技术支持部门的三个职位,所以技术支持部长可以为包括自己在内的三个部门职位分配报表展示和平台管理的使用权限,技术支持部长可授权的内容包括参数查询、填报录入、定时调度,下面为技术支持总调度分配填报录入和定时调度的查看权限,如下图:

    注:此时的技术支持部长就相当于次级管理员,其对自己部门的人员分配系统的使用权限,由于管理员在给技术支持部长配置授权权限的时候,并没有勾选权限管理授权复选框,即没有把权限管理的授权权限分配给该角色,所以技术支持部长没有将权限管理分配给其下级的权限。

    另:除了给部门职位分配权限之外,还可以手动添加角色/用户,并给其分配权限。

    5.3 二次权限分配效果查看

    登出系统,用技术支持总调度Jack账号登录,可以看到该用户只有填报录入和定时调度的查看权限,并没有授权权限:

    6. 总结从上面示例可以看出,多级权限分配有以下几个特征:

    1)如果需要将授权权限分配给某个职位或角色,首先需要开启分级授权功能;

    2)如果某角色拥有授权权限,其必须拥有管理系统>权限管理的查看权限,因为进行权限分配的时候需要在权限管理项中进行;

    3)下级管理员能看到用户是管理员在给其分配可管理部门下的用户、角色下面的用户以及无部门角色的用户,同时该部门的部门结构也会显示出来;

    4)如果出现多个管理员为同一角色进行权限分配,那么后配置的增量更新先配置的;

    5)分级管理员增删报表目录的时候,当删除目录时,会删除下面所有的模板,包含无权限的模板。

    展开全文
  • 当前后端分离时,权限问题的处理也和我们传统的处理方式有一点差异。笔者前几天刚好在负责一个项目的权限管理模块,现在权限管理模块已经做完了,我想通过5-6篇文章,来介绍一下项目中遇到的问题以及我的解决方案,...

    关注公众号【江南一点雨】,专注于 Spring Boot+微服务以及前后端分离等全栈技术,定期视频教程分享,关注后回复 Java ,领取松哥为你精心准备的 Java 干货!


    当前后端分离时,权限问题的处理也和我们传统的处理方式有一点差异。笔者前几天刚好在负责一个项目的权限管理模块,现在权限管理模块已经做完了,我想通过5-6篇文章,来介绍一下项目中遇到的问题以及我的解决方案,希望这个系列能够给小伙伴一些帮助。本系列文章并不是手把手的教程,主要介绍了核心思路并讲解了核心代码,完整的代码小伙伴们可以在GitHub上star并clone下来研究。另外,原本计划把项目跑起来放到网上供小伙伴们查看,但是之前买服务器为了省钱,内存只有512M,两个应用跑不起来(已经有一个V部落开源项目在运行),因此小伙伴们只能将就看一下下面的截图了,文末有部署教程,部署到本地也可以查看完整效果。

    本文我们先不聊具体实现,我先来介绍一下我这个权限管理模块的一个整体架构,以及最终呈现出来的效果。

    数据库设计

    权限数据库主要包含了五张表,分别是资源表、角色表、用户表、资源角色表、用户角色表,数据库关系模型如下:

    这里写图片描述

    关于这个表,我说如下几点:

    1.hr表是用户表,存放了用户的基本信息。

    2.role是角色表,name字段表示角色的英文名称,按照SpringSecurity的规范,将以ROLE_开始,nameZh字段表示角色的中文名称。

    3.menu表是一个资源表,该表涉及到的字段有点多,由于我的前端采用了Vue来做,因此当用户登录成功之后,系统将根据用户的角色动态加载需要的模块,所有模块的信息将保存在menu表中,menu表中的path、component、iconCls、keepAlive、requireAuth等字段都是Vue-Router中需要的字段,也就是说menu中的数据到时候会以json的形式返回给前端,再由vue动态更新router,menu中还有一个字段url,表示一个url pattern,即路径匹配规则,假设有一个路径匹配规则为/admin/**,那么当用户在客户端发起一个/admin/user的请求,将被/admin/**拦截到,系统再去查看这个规则对应的角色是哪些,然后再去查看该用户是否具备相应的角色,进而判断该请求是否合法。

    下图分别是用户表、角色表以及资源表中的部分数据(数据库脚本可以在文末的项目地址中下载,位置resources/vhr.sql):

    这里写图片描述
    这里写图片描述
    这里写图片描述

    整体效果

    首先,不同的用户在登录成功之后,根据不同的角色,会看到不同的系统菜单,完整菜单如下:

    这里写图片描述

    不同用户登录上来之后,可能看到的会有差异,如下:

    这里写图片描述

    每个用户的角色是由系统管理员进行分配的,系统管理员给用户分配角色的页面如下:

    这里写图片描述

    系统管理员也可以管理不同角色可以操作的资源,页面如下:

    这里写图片描述

    其他的删除、搜索等一些琐碎的功能我这里就不再一一介绍了。

    项目地址

    由于商业协议,原本的项目不能共享给各位小伙伴,因此我专门做了一个开源项目,这个项目的功能整体来说比较多,但是考虑到这个系列的文章主要是向大家介绍权限管理模块,因此其他模块都被我暂时阉割掉了,不过小伙伴们可以放心,权限管理模块的代码一行都没有删除,涉及到权限管理的代码和数据都是完整的,可以直接运行的。小伙伴将以管理员的身份登录到后台系统,登录成功之后,依次点击系统管理->基础信息设置->权限组,即可配置不同角色可以操作的资源;然后依次点击系统管理->操作员管理,即可管理每一位操作员的角色。

    项目地址: https://github.com/lenve/vhr

    快速部署

    1.clone项目到本地git@github.com:lenve/vhr.git

    2.数据库脚本放在hrserver项目的resources目录下,在MySQL中执行数据库脚本

    3.数据库配置在hrserver项目的resources目录下的application.properties文件中

    4.在IntelliJ IDEA中运行hrserver项目

    OK,至此,服务端就启动成功了,此时我们直接在地址栏输入http://localhost:8082/index.html即可访问我们的项目,如果要做二次开发,请继续看第五、六步。

    5.进入到vuehr目录中,在命令行依次输入如下命令:

    # 安装依赖
    npm install
    
    # 在 localhost:8080 启动项目
    npm run dev
    

    由于我在vuehr项目中已经配置了端口转发,将数据转发到SpringBoot上,因此项目启动之后,在浏览器中输入http://localhost:8080就可以访问我们的前端项目了,所有的请求通过端口转发将数据传到SpringBoot中(注意此时不要关闭SpringBoot项目)。

    6.最后可以用WebStorm等工具打开vuehr项目,继续开发,开发完成后,当项目要上线时,依然进入到vuehr目录,然后执行如下命令:

    npm run build
    

    该命令执行成功之后,vuehr目录下生成一个dist文件夹,将该文件夹中的两个文件static和index.html拷贝到SpringBoot项目中resources/static/目录下,然后就可以像第4步那样直接访问了。

    步骤5中需要大家对NodeJS、NPM等有一定的使用经验,不熟悉的小伙伴可以先自行搜索学习下,推荐Vue官方教程

    注意事项

    再次强调,这只是一个权限管理功能模块,运行后只有权限管理功能是完整的。小伙伴们在本地部署成功之后,可以修改每一个用户的角色以及每一个角色可以操作的资源,修改成功之后,注销登录,再以被修改的用户身份登录,即可看到菜单变化。

    好了,本文我们就先说这么多,从下篇文章开始,我会和小伙伴分享这个效果实现的核心思路,欢迎小伙伴们持续关注。

    关注公众号,可以及时接收到最新文章:

    这里写图片描述

    展开全文
  • linux权限详细介绍

    万次阅读 2018-12-26 10:09:17
    这些信息中包含了这个文件的权限信息和所有者以及所在组,还有该文件的大小,该文件最后修改的日期时间,文件名称等信息. 从左往右看, 第一个代表文件的类型, 如果是一个普通文件为"-", 如果是一个目录...
  • 权限

    2018-03-27 23:33:49
    Linux下有两种用户:超级用户(Root)、普通用户·超级用户:可以在Linux下做任何事情,不受限制·普通用户:在Linux下做有限的事情·超级用户的命令提示符是“#”,普通用户的命令提示符是“$”命令:su功能:切换...
  • chmod修改权限的用法

    万次阅读 多人点赞 2019-02-27 23:15:50
    一、chmod作用:修改文件、目录的权限 二、语法:chmod [对谁操作][操作符][赋予的权限] 文件名 三、操作对象:u 用户user,表现文件或目录的所有者 g 用户组group,表现文件或目录所属的用户组 o 其他用户...
  • 权限简介 Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。 Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。 Linux下权限的粒度...
  • 系统权限管理设计

    万次阅读 多人点赞 2014-07-16 12:19:47
    关于权限菜单的设计
  • 权限管理

    万次阅读 2015-07-16 16:58:23
    权限管理分为四个模块: 1、模块的权限:对应的所有调用的method(action.method) 2、所有action的权限(action) 3、职称权限:对应N个action的权限+N个method... 权限的作用范围:模块的权限权限 职称权限 个人权限
  • linux终端显示权限不够的解决方法

    万次阅读 2018-05-20 11:33:17
    使用chmod命令我shell脚本赋予权限chmod 777 后面接文件
  • deepin让普通用户拥有root权限

    万次阅读 2019-11-02 04:51:20
    首先切换到root执行 su vim /etc/sudoers 如下让angel和root一样 既可以让angel在任何位置执行任何命令
  • Linux查看文件的权限

    万次阅读 2018-07-13 10:25:30
    Linux查看权限命令:ls -l 文件或文件夹
  • Ubuntu修改文件权限

    万次阅读 多人点赞 2017-12-23 15:46:50
    Linux下修改文件权限
  • RBAC权限管理

    万次阅读 多人点赞 2012-01-07 15:04:03
    RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中...
  • ORA-01031:权限不足的问题

    万次阅读 多人点赞 2015-09-20 22:10:35
    ORA-01031:权限不足的问题  在 脚本更新时,报错:ORA-01031: 权限不足。  grant connect,resource,dba to cssy;  赋权DBA之后,还有这个错误。  执行 grant all privileges to cssy  赋予...
  • 权限”用英语该用哪个?

    万次阅读 2010-02-08 20:19:00
    权限”是我们设计系统必不可少的,关于“权限”的英语单词也很多,该用哪个呢?我参照有关“权限”的英文软件,总结如下,不足之处,多多指正:Permission:权限,包括动作和客体,比如:添加文档,“添加”是动作...
  • 您没有权限访问请与网络管理员联系请求访问权限 后来找到如下解决办法: 到你共享的那个文件夹的共享权限里面查看是否有everyone 并且是有读取等访问权限. 另外,如果你的共享文件夹所在的分区是NTFS的话,...
  • Linux 下获取Root权限的几种方法

    万次阅读 2016-12-03 17:08:13
    可以参考这篇文章 传送门方法分为永久性获取root权限以及非永久性获取Root权限 非永久性获取Root权限可以在我们要键入的命令之前加上sudo前缀。如我们要键入的命令是: rm ,以Root用户执行的方式就是: sudo rm ...
1 2 3 4 5 ... 20
收藏数 2,113,025
精华内容 845,210
关键字:

权限