0

pentaho jpivot でいくつかの制限を作成しようとしています
1. 2 人のユーザーがいます (user1 - role1 と user2 - role2)
2. この値を持つピボットがあります

ストア | 所有者 | 販売
 ----------------------
 s1 | ユーザー1 | 1235
       | | ユーザー2 | 2684
 s2 | ユーザー1 | 1628年
       | | ユーザー2 | 1002
 s3 | ユーザー1 | 1111
       | | ユーザー2 | 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についても同様です。

where句を追加するxactionを使用してこれを作成しましたが、jpivot OLAPナビゲーターにアクセスすると、user1はまだuser2の値を見ることができます。

ディメンションの所有者に 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>

....

以上ですので、ご指導お願いします。

よろしく、dga

4

1 に答える 1

0

これを除いて、すべてが良かった:

ロールを使用する前に、 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" />
于 2013-04-13T19:26:33.410 に答える