2단원: 행 수준 보안에 대한 특성 만들기
행 수준 보안을 정의하는 한 가지 일반적인 방법은 사용자의 로그인 정보를 사용하여 표시되는 행을 결정하는 것입니다. 이 단원에서는 사용자의 로그인 정보에 기초하여 데이터를 필터링하는 특성을 Employee 엔터티 내에 만듭니다. 필터를 만든 다음 필터를 수식으로 편집하여 GetUserID 함수를 사용할 수 있게 합니다.
[!참고]
이 단원에서는 Business Intelligence Development Studio가 컴퓨터에서 열려 있으며 보고서 모델이 창에 표시되어 있다고 가정합니다.
수식으로 편집되는 필터링된 특성을 만들려면
트리 뷰에서 Employee 엔터티를 선택합니다.
Employee 특성이 목록 뷰에 표시됩니다.
Employee를 마우스 오른쪽 단추로 클릭하고 새로 만들기를 가리킨 다음 필터를 클릭합니다.
데이터 필터링 대화 상자가 열립니다.
필드 목록에서 Login ID2를 두 번 클릭합니다.
1단원에서 만든 Login ID2 필드를 사용하는 필터 조건이 필터에 추가됩니다.
필터에서 Login ID2를 마우스 오른쪽 단추로 클릭하고 수식대로 편집을 선택합니다.
Login ID2=Empty 수식이 표시된 상태로 수식 정의 대화 상자가 열립니다.
수식 상자에서 Empty 단어를 선택합니다.
함수 탭을 선택한 다음 정보 노드를 확장합니다.
GetUserID 함수를 두 번 클릭합니다.
Empty가 GetUserID()로 바뀝니다.
확인을 클릭합니다.
수식 정의 대화 상자가 닫히고 필터 절에 Login ID2=GetUserID가 표시됩니다.
확인을 다시 클릭합니다.
데이터 필터링 대화 상자가 닫히고 NewFilter 특성이 목록 뷰에 표시됩니다. 다음으로 특성의 이름을 바꿉니다.
특성의 이름을 바꾸려면
목록 뷰에서 NewFilter 특성을 마우스 오른쪽 단추로 클릭하고 이름 바꾸기를 선택합니다.
UserIDFilter를 입력합니다.
다음으로 필요한 특성 속성을 할당합니다.
특성의 속성을 수정하려면
목록 뷰에서 UserIDFilter 특성을 선택합니다.
속성 창에서 IsFilter 속성을 찾습니다.
IsFilter 값이 True인지 확인합니다.
Hidden 속성을 찾습니다.
Hidden 아래쪽 화살표를 클릭한 다음 True를 선택합니다.
Hidden 속성을 True로 변경하면 모델 사용자는 모델을 사용하여 보고서를 만들 때 이 속성을 볼 수 없습니다. 특성을 필터로 사용하여 보안을 할당하고 있으므로 사용자가 자신의 보고서를 만들 때 이 특성을 볼 필요가 없습니다.
목록 뷰에서 Login ID2 특성을 선택합니다.
속성 창에서 Nullable 속성을 찾습니다.
Login ID2 특성에서 Nullable 속성이 True로 설정되어 있으므로 UserIDFilter 특성도 Nullable 속성이 True로 설정되어야 합니다. 단, 이 속성은 보안 필터로 사용하기 위한 필수 속성이 아닙니다.
Nullable 아래쪽 화살표를 클릭한 다음 True를 선택합니다.
특성을 보안 필터 컬렉션에 할당하려면
트리 뷰에서 Employee 엔터티를 선택합니다.
속성 창에서 SecurityFilters 속성을 찾습니다.
SecurityFilters 속성을 선택한 다음 줄임표 (...) 단추를 클릭합니다.
Attribute Reference 컬렉션 편집기 대화 상자가 열립니다.
추가를 클릭합니다.
보안 필터 특성 대화 상자가 열립니다.
엔터티 목록에서 Employee 엔터티가 선택되었는지 확인합니다.
필드 목록에서 UserIDFilter 특성을 선택합니다.
확인을 차례로 두 번 클릭합니다.
다음으로 변경 내용을 모델에 저장한 다음 모델을 보고서 서버에 다시 배포합니다.
보고서 모델을 저장 및 배포하려면
파일 메뉴에서 모두 저장을 클릭합니다.
솔루션 탐색기에서 Adventure Works Model 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 배포를 선택합니다.
모델이 보고서 서버에 배포됩니다.
중요 오류 목록 탭을 보면 모델이 성공적으로 배포되었는지 확인할 수 있습니다. 오류가 발생한 경우 계속하기 전에 문제를 해결해야 합니다.
다음 단계
이제 특성을 만들어 SecurityFilters 컬렉션에 할당했습니다. 다음으로 SQL Server Management Studio에서 모델 항목 보안을 설정해야 합니다. 3단원: 보고서 관리자에서 행 수준 보안 설정을 참조하십시오.