2016-06-22 4 views
0

교육 환경에서 SQL Server 테이블 형식 모델에 동적 보안을 적용하고 있습니다. userid와 사용자가 액세스해야하는 관련 학교가있는 보안 테이블이 있습니다. 사용자가 하나의 학교를 운영하는 경우 DAX 필터가 제대로 작동하지만 둘 이상의 학교가있는 사용자의 경우 다중 값 오류 (단일 값이 필요한 곳에 여러 값 표가 제공되었습니다.)가 표시됩니다. 내 LOOKUPVALUE() 함수가 문제의 원인이며, 기본적으로 각 사용자에 대해 각각 SecurityTable[SchoolKey] 값에 대해 Enrollment[SchoolKey]을 비교하는 루프를 만들 수있는 방법을 결정하려고합니다. 어떤 생각이라도 대단히 감사합니다!여러 값이있는 찾아보기 테이블을 사용하는 동적 DAX 보안 필터

= 
CONTAINS (
    'Enrollment', 
    'Enrollment'[StudentKey], Student[StudentKey], 
    'Enrollment'[SchoolKey], LOOKUPVALUE (
     SecurityTable[SchoolKey], 
     SecurityTable[UserId], USERNAME() 
    ) 
) 

답변

0

나는이 대답은 늦게 알아,하지만 당신은 등록 테이블에이 DAX 필터를 시도 할 수 있습니다 : 여기

='Enrollment'[SchoolKey] 
    = LOOKUPVALUE (
     SecurityTable[SchoolKey], 
     SecurityTable[UserId], USERNAME(), 
     SecurityTable[SchoolKey], 'Enrollment'[SchoolKey] 
    ) 

, 모든 행에 LOOKUPVALUE 결과의 첫 번째 검색 조건 (학교)를하는 동안 사용자는 액세스 권한을 가지며 두 번째 검색 조건은 결과 집합을 단일 행으로 추가로 축소합니다.

MSDN의 자세한 예제는 https://msdn.microsoft.com/en-us/library/hh479759.aspx

입니다.
관련 문제