通过finedb库查询某个用户或某个角色的权限问题(初稿)

楼主
和而共谐,助而互进。
本来准备用文档的形式呈现,但感觉这个内容可扩展性太多了,想把它写完整不易。

-- 先粗略记录一下,后面再慢慢完善 --

________________我是分割线______________



________________我是分割线______________

先给Alice用户添加到【普通角色1】中


角色赋予【”数据连接”权限&“目录权限”】(陆续补上人员管理&系统管理)



单独站在用户的角度给Alice用户添加【数据连接权限&目录权限】;



设置完成,保存;

________________我是分割线______________

通过下面的SQL脚本就能快速从用户或角色角度来查看对应权限;
+++++++++++++++sql_str+++++++++++++
SELECT USERNAME
       ,d. NAME --  角色名
       ,displayname -- 显示报表名称和目录名称
       -- ,AUTHORITYENTITYTYPE -- 0-目录权限,2 - 数据连接权限
       ,case AUTHORITYENTITYTYPE
when 0 then  '目录权限'
when 2 then  '数据连接权限'
else '未知' end as AUTHORITYTYPE
      
       ,case AUTHORITYTYPE
when 1 then  '查看权限'
when 2 then  '授权权限'
when 3 then  '编辑权限'
when 4 then  '数据连接管理权限' else '未知' end as AUTHORITYTYPE

     ,case EXPANDTYPE
when 1 then  '平台管理系统节点'
when 2 then  '首页'
when 3 then  '目录'
when 5 then  '链接'
when 6 then  '文件'
when 101 then  '上报流程'
when 102 then  'FineReport 报表'
when 201 then  'BI 报表' else '未知' end as EXPANDTYPE
-- ,b.ROLETYPE
     ,case b.ROLETYPE
when 1 then  '部门职位'
when 2 then  '自定义角色'
else '未知' end as ROLETYPE
--  ,C.ROLETYPE
    ,case C.ROLETYPE
when 1 then  '部门-部门下职务'
when 2 then  '自定义角色'
when 3 then  '用户'
when 5 then  '职务'
else '未知' end as ROLETYPE
-- 所关联的广义角色类型1 - 部门,部门下职务2 - 自定义角色3 - 用户4 - 职务
FROM FINE_USER a -- 用户表
LEFT JOIN FINE_USER_ROLE_MIDDLE b -- 用户角色的中间表
ON a.ID = b.USERID
LEFT JOIN FINE_AUTHORITY c -- 权限表
ON b.roleid = c.roleid
LEFT JOIN FINE_CUSTOM_ROLE d -- 自定义角色表
ON b.roleid = d.id
LEFT JOIN FINE_DEP_ROLE f -- 部分职位中间表
ON b.roleid = f.id
-- LEFT JOIN g -- BI业务包行过滤器表
-- on c.roleid =f.roleid
LEFT JOIN fine_department h -- 部门表
ON f.DEPARTMENTID = h.id
LEFT JOIN FINE_AUTHORITY_OBJECT j -- 权限实体表
ON j.id = c.AUTHORITYENTITYID
LEFT JOIN FINE_POST i ON f.postid = i.id
WHERE a.USERNAME = 'Alice'
-- and EXPANDTYPE = 3 -- 目录
-- and AUTHORITY=2  -- 权限
-- and AUTHORITYENTITYTYPE in (1,0)
GROUP BY USERNAME,
         d.NAME,
         displayname,
         AUTHORITYENTITYTYPE,
         AUTHORITYTYPE,
         EXPANDTYPE,
         b.ROLETYPE,
         c.ROLETYPE
+++++++++++++++sql_end+++++++++++++

结果呈现,后面我再慢慢补充吧!= =#


编辑于 2021-1-29 11:01  
分享扩散:

沙发
发表于 2021-1-28 23:57:31
占楼占楼
板凳
发表于 2021-1-29 09:17:40
地板
发表于 2021-2-1 08:45:50
5楼
发表于 2021-2-24 11:29:58

6楼
发表于 2021-7-28 15:14:37
您好,我想问一下,我的系统已经根据部门给一部分表配置了权限,但是查询出来的displayName都是空值,匹配不上表名,这种情况该怎么办?
7楼
发表于 2021-7-28 16:04:26
不用递归,1目录下的1.1目录中的报表能查出来吗
8楼
发表于 2021-9-10 16:57:38
9楼
发表于 2022-2-11 14:53:38
666,您好,想问下有业务包的权限查询的吗
10楼
发表于 2022-10-12 15:08:19 发布于APP客户端
是哪个表啊?
11楼
发表于 2023-3-6 07:54:20
有没有FineReport的类似的sql呀。
12楼
发表于 2023-6-5 16:28:29
不行呀~运行结果是空
13楼
发表于 2024-1-23 17:21:33
填报采集没有权限,为什么最终结果体现不来
14楼
发表于 2024-7-1 09:23:46
存在一个问题,如果是内置数据转外置数据库,FINE_AUTHORITY 表中缺数据,导致权限表不能使用。可以使有导出插件。这里边的权限数据是全的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表