1. 资源权限
1.1 一般资源
资源权限相对来说是实体权限,就是在系统资源树上能看得见的节点。我们在分配资源权限的时候就是限制用户能看到哪些节点,不能看到哪些节点。
用户的资源权限有三个来源:用户自身所分配的资源权限;继承所在机构的资源权限;继承所拥有的角色的资源权限。
如果一个用户同时具备上述三种来源,最终体现在该用户上的资源权限是三者的并集,即:用户资源权限=用户自身资源+所在机构的资源+拥有的角色的资源 (三者并集)。
1.2 门户资源
例如在机构中分配了门户a的权限,在角色中分配了门户b的权限,在用户自身分配了门户c的权限,那么最终用户登录的时候进入哪个门户呢?
某用户同时拥有的门户a、门户b、门户c,哪一个最后更新,用户就进入最近更新的那个门户。
这个规则是在没有在个人设置中设置门户的前提下,如果一个用户需要固定进入自己指定的一个门户,那么就到"个人设置/外观与主题/门户设置"中指定默认门户,该设置可以让一个门户的优先级提到最高。
1.3 报表和easyolap权限如何分配?
报表模板权限分配:只要分配查看权限即可。不需要分配该报表涉及到的主题表和维表的查看权限。
easyolap权限分配:首先要分配easyolap保存结果的权限,然后还需要分配该拖着分析所用的虚拟主题(或者主题表)的"即席分析"权限。
1.4 分配门户权限的时候,勾选"计算所有报表"
2. 数据权限
数据权限的分配有三处:机构、角色、用户
数据权限的规则与资源权限的规则完全不同,我们以四个数据权限分配的步骤来了解规则:
第一步
首先来看第一层,主题域,分别在机构角色和用户上定义主题域节点的数据权限:机构定义110100、角色定义110000、自身定义110101那么最后在生成sql的时候:
select sum(a.ZZC) as ZZC0
from FACT_SRZC a
where ((a.XZQH) = "110101" or (a.XZQH) like "11%" or (a.XZQH) like "1101%")
即:机构角色用户的主题域节点都分配了数据权限,最终都起作用了,而且数据权限之间是交集,解析成sql就是"机构数据权限&角色数据权限&用户数据权限"。
第二步:
在保留主题域数据权限的基础上,再分别到机构角色和用户的主题集节点上分配数据权限:机构定义120000、角色定义120100、用户自身定义120101,那么最后生成的sql:
select sum(a.ZZC) as ZZC0
from FACT_SRZC a
where ((a.XZQH) = "120101" or (a.XZQH) like "1201%" or (a.XZQH) like "12%")
即:忽略了主题域节点上的数据权限,优先使用主题集上的数据权限,而且三者取交集。
第三步:
在保留主题域和主题集数据权限的基础上,再分别到机构角色和用户上对报表分组节点分配数据权限:机构定义130000、角色定义130100、用户自身定义130101,那么最后生成的sql:
select sum(a.ZSR) as A2
from FACT_SRZC a
where (a.XZQH = "130101" or a.XZQH like "1301%" or a.XZQH like "13%")
即:忽略了主题域和主题集节点上的数据权限,优先使用报表分组节点上的数据权限,而且三者取交集。
第四步:
在保留主题域、主题集、报表分组数据权限的基础上,再分别到机构角色和用户上对报表节点分配数据权限:机构定义310000、角色定义310100、用户自身定义310101,那么最后生成的sql:
select sum(a.ZSR) as A2
from FACT_SRZC a
where (a.XZQH = "310101" or a.XZQH like "3101%" or a.XZQH like "31%")
即:忽略了主题域、主题集、报表分组节点上的数据权限,优先使用报表节点上的数据权限,而且三者取交集。
小结:数据权限采用就近原则
报表数据数据权限》报表分组数据权限》主题集数据权限》主题域数据权限
2.1数据权限—数据级次维
那么数据级次维的数据权限跟普通维的数据权限有什么不同之处呢?
数据级次维权限:必须分配,如果不设置数据级次维的数据权限,则默认为false,就没有数据的访问权限。
普通维数据权限:可以不设置,且不设置则默认为true,能计算出全部数据。
请先登录