큐브를 설정 한 후에 볼 수있는 사용자 및 데이터 테이블을 사용하여 동적 보안을 추가하라는 메시지가 표시되었습니다.SSAS OLAP 큐브 동적 보안. 하나의 역할에있는 많은 차원
문제는 3 가지 다른 차원을 고려해야한다는 것입니다. count에 noneEmpty 함수가있는 사실 테이블을 사용하기로 결정했습니다.
NonEmpty([Dimension].[Hierarchy].members,
([Measures].[Allowed Count],
[Users].[User].&[UserName]
)
)
역할을 설정 한 후 나는 같은 결과를 가지고 :
DIM1을 | Dim2 | Dim3
1 | A | 300
1 | A | 320
1 | A | 340
1 | B | 300
1 | B | 320
1 | B | 340
여기서 :
Dim1 | Dim2 | Dim3
1 | A | 300
1 | A | 320
1 | B | 허용 된 사용자 액세스를위한 340
데이터가
사용자 이름과 같은 테이블에 저장됩니다 | Dim1Key | Dim2Key | Dim3Key
계층 구조는 과 같습니다. 각 Dim1에는 Dim3의 각 유형이 포함 된 각 유형의 Dim2가 포함됩니다.
사용자는 Dim1의 Dim2에서 주어진 Dim3 멤버에만 액세스 할 수 있습니다.
결국 MDX에서 각각의 딤섬을이 차원을 연결하는 방법은 각각의 값
이 가지고있다UPDATE :
몇 가지 조사 나는이 쿼리있어 후 :
SELECT [Measures].[CC Count] ON 0,
NonEmpty(
(
NonEmpty((Dim1.children),
([Measures].[CC Count],
[Users].[User].&[userName]
))
,
NonEmpty((Dim2.children),
([Measures].[CC Count],
[Users].[User].&[userName]
)),
NonEmpty((Dim3.children),
([Measures].[CC Count],
[Users].[User].&[userName]
))
)
,([Measures].[CC Count],
[Users].[User].&[userName]
))
ON 1
FROM [Cost Center]
을
이렇게하면 원하는 결과를 얻을 수 있지만 Role의 Dimensiom Data에 배치 할 수 없습니다. 그것을 바꿀 수있는 방법이 있습니까?
답장을 보내 주셔서 감사합니다. 지금 당장 귀하의 아이디어를 구현하고 질문이 있습니다. 이 새로운 차원은 보안 테이블 또는 주요 팩트 테이블의 기반 위에 구축되어야합니다. – Zergister
@ 자ergister 흠. 3 개의 키를 십자가 조인 (cross join)하여 구축했다면 너무 큽니까? 그렇지 않다면 그렇게하십시오. 그렇다면 사실 테이블에 최소한 존재하는 모든 조합이 필요합니다. – GregGalloway
글쎄, 난 그냥 같은 결론에 도달 : D – Zergister