2009-04-14 2 views
0

역할의 CellData 식에서 CurrentMember 함수를 사용하여 특정 차원을 통해 큐브에 대한 액세스를 제한하고 있습니다. 이것은 한 가지 예외를 제외하고 예상대로 작동합니다. 역할이 표시되지 않는 데이터를 필터링하기 위해 슬라이서 인 멘션을 사용하는 경우에도 '# N/A'라는 문자열이 모든 셀에 표시됩니다.CurrentMember (MDX) Slicer 차원을 무시합니다.

역할이 축에서 제한된 액세스의 차원을 포함시킨 후에야 예상대로 셀 값이 표시됩니다.

CurrentMember 함수가 슬라이서 차원을 무시하는 것처럼 보입니다. 이 경우인가요? 이 문제에 어떻게 접근해야합니까?

+0

이 질문을 MSDN Managed Newsgroups에 게시하고 Microsoft 담당자로부터 답변을 얻었습니다. http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft .public.sqlserver.olap & tid = b4fcb648-3d05-4310-9676-f40c2f7b839c & cat = & lang = & cr = & sloc = & p = 1 –

+0

msdn 포럼에 무슨 일이 있었는지 모르지만 위의 내 의견에있는 링크는 더 이상 작동하지 않습니다. . SQL Monster가 여기에 캐시 한 것으로 보입니다 ... http://www.sqlmonster.com/Uwe/Forum.aspx/sql-server-olap/13948/CurrentMember-Function-Ignores-Slicer-Dimension –

답변

0

내 충고는 모든 큐브 값을 사용하여 액세스를 제한해야하는 큐브에서 벗어나는 것입니다. 거기에 있었고, 너무 많은 시간을 낭비했고 여전히 불안정한 해결책으로 끝났습니다.

OLAP에서 '역할'을 정확하게 사용하지 마십시오.

+0

나는 결국 당신의 충고와 나의 해결책에서 역할을 제거했습니다. –

1

필터를 사용하여 쿼리를 수행하는 방법에 따라 다릅니다. 하위 쿼리 (SSMS 또는 BIDS의 상단 필터 영역 사용)를 생성하는 경우 currentMember는 All 멤버를 반환합니다. 서브 쿼리가 작동하도록 설계된 방식입니다. 하위 쿼리를 사용하는 경우 SSMS 또는 BIDS에 WHERE 절이 사용되므로 예상 결과가 나타납니다.

차원 멤버별로 필터링하는 경우 셀 데이터 대신 차원 데이터 탭을 사용하는 것이 좋습니다.

+0

당신의 솔루션을 완전히 이해하고 있는지 확신 할 수는 없지만, 쿼리에 차원을 포함시킬 경우에만 '보안'이 적용된다는 의미입니다. –

+1

.CurrentMember를 사용하여 원래 게시물을 다시 읽지 만 항상 보안 역할이 적용됩니다. 약간 특이하며 문제가 발생할 수 있습니다. 역할을 사용하지 않는다고 말하면 안되지만 셀 기반 보안을 사용하지 않으려 고합니다. 문서를 읽으면 값이 제한된 경우 # N/A를 표시하도록 설계되었습니다. 사용자가 특정 멤버 집합을 보지 못하도록하려면 CellData가 아닌 DimensionData 탭을 사용하여 보안을 설정해야합니다. –