zoukankan      html  css  js  c++  java
  • 系统角色权限问题

      通常“应用模块”和“动作定义”是由系统开发商在系统设计、开发阶段就定义好了,在系统交付给用户使用后就不再对此更改了(当然这也不是绝对的)。 

      权限设计数据库结构表  
     
     --权限许可      
     create table res_permission         
    (       

        roleid      INTEGER,    

        resourceid  varchar2(30),      

        operationid integer,       

        primary key(roleid,resourceid,operationid)    

     )                       
     --角色定义    

     create table res_role         (       

         roleid      INTEGER,     

         rolename    varchar2(30),     

         roledesc    varchar2(100),      

         primary key(roleid)      

       )               
     --角色权限      
     create table res_userrole         (       

      roleid      INTEGER,       

      userid      varchar2(30),--用户名       

      primary key(roleid,userid)      

       )             

        --资源      

     create table res_resource         (     

      resourceid      varchar2(20),    

      resourcename    varchar2(30),     

      resourcedesc    varchar2(100),         

      primary key(resourceid)       

     )     

        --操作信息      
     create table res_operation         (      
     

        operationid      varchar2(20),       

        operationname    varchar2(30),      

        operationdesc    varchar2(100),      

        primary key(operationid)     

     )       
     --res_operation 表的序列号    

      
     create  sequence   res_operation_seq;    

         --res_role 表的序列      
     
    create  sequence   res_role_seq;       

     --建立soperationid与sroleid两个序列分别用来产生Operation表与Role表的ID列        create sequence soperationid increment by 1 start with 1 nomaxvalue minvalue 1;          create sequence sroleid increment by 1 start with 1 nomaxvalue minvalue 1;         
       
       
    --表设计的原理 
    --根据交叉法来匹配权限 
    --1:根据用户表中的用户id关联到res_userrole的userid,然后再关联到res_role,查出用户对应的所有权限,存放到list中 

    --2:根据资源和操作查询出用户可以操作的所有许可res_permission,存放到list中

    --3:通过同时遍历两个list,查询出是否存在交叉,如果存在就是有权限,否则为无权限 

  • 相关阅读:
    java锁类型
    Java线程池
    1 Navicat12 过期了怎么办
    N1-二维数组查找
    SQL-59 按照salary的累计和running_total,其中running_total为前两个员工的salary累计和,其他以此类推。
    SQL-58 获取有奖金的员工相关信息。
    SQL-57 使用含有关键字exists查找未分配具体部门的员工的所有信息。
    SQL-56 获取所有员工的emp_no、部门编号dept_no以及对应的bonus类型btype和recevied,没有分配具体的员工不显示
    SQL-55 分页查询employees表,每5行一页,返回第2页的数据
    SQL-54 查找排除当前最大、最小salary之后的员工的平均工资avg_salary。
  • 原文地址:https://www.cnblogs.com/zhaojinhui/p/3889988.html
Copyright © 2011-2022 走看看