Pentaho MDX ролей
Я пытаюсь создать некоторые ограничения в Pentaho Jpivot
1. У меня есть 2 пользователя (user1 - роль1 и пользователь2 - роль2)
2. у меня есть пивот с этими значениями
магазин | владелец | продажи --------------------- s1 | user1 | 1235 | user2 | 2684 с2 | user1 | 1628 | user2 | 1002 с3 | user1 | 1111 | user2 | 1596 ...
моя схема выглядит так:
<Schema name="asimov1">
<Dimension type="StandardDimension" visible="true" foreignKey="owner" name="owner">
<Hierarchy name="owner" visible="true" hasAll="false" primaryKey="owner" primaryKeyTable="storeTable">
<Level name="owner" visible="true" table="storeTable" column="owner" uniqueMembers="false">
</Level>
</Hierarchy>
</Dimension>
<Dimension type="StandardDimension" visible="true" foreignKey="store1" name="store1">
<Hierarchy name="store1" visible="true" hasAll="true" primaryKey="store1" primaryKeyTable="storeTable">
<Level name="store1" visible="true" table="storeTable" column="store1" uniqueMembers="false">
</Level>
</Hierarchy>
</Dimension>
<Cube name="asimov1" caption="asimov1" visible="true" description="asimov1" cache="true" enabled="true">
<Table name="storeTable">
</Table>
<DimensionUsage source="store1" name="store1" visible="true" foreignKey="store1">
</DimensionUsage>
<DimensionUsage source="owner" name="owner" visible="true" foreignKey="owner">
</DimensionUsage>
<Measure name="sales" column="sales" formatString="#" aggregator="sum">
</Measure>
</Cube>
</Schema>
мой выбор:
select NON EMPTY Crossjoin({[owner].[owner].Members}, {[Measures].[sales]}) ON COLUMNS,
NON EMPTY {[store].[store].Members} ON ROWS
from [role_test]
Я хочу, чтобы при входе в систему как user1, чтобы увидеть только значения user1 и так для user2
Я сделал это с помощью xaction, которая добавляет предложение where, но user1 stil может видеть значения user2, если имеет доступ к навигатору OLAP jpivot.
Я добавил visible="false" к владельцу измерения, но без эффекта. Я сделал роли без эффекта.
<Role name="user1">
<SchemaGrant access="none">
<CubeGrant cube="asimov1" access="all">
<HierarchyGrant hierarchy="owner" topLevel="owner" bottomLevel="owner" access="custom">
<MemberGrant member="[owner].[user1]" access="all">
</MemberGrant>
<MemberGrant member="[owner].[user2]" access="none">
</MemberGrant>
</HierarchyGrant>
</CubeGrant>
</SchemaGrant>
....
Вот и все, так что, пожалуйста, дай несколько советов.
С наилучшими пожеланиями, дга
1 ответ
Все было хорошо, кроме этого:
Перед использованием ролей необходимо раскомментировать эту строку в biserver-ce/pentaho-solutions/system/pentahoObjects.spring.xml
<bean id="Mondrian-UserRoleMapper"
name="Mondrian-One-To-One-UserRoleMapper"
class="org.pentaho.platform.plugin.action.mondrian.mapper.MondrianOneToOneUserRoleListMapper"
scope="singleton" />