다음을 통해 공유


차원 데이터에 대한 사용자 지정 액세스 부여

MicrosoftSQL Server 2005 Analysis Services(SSAS) 데이터베이스 역할에 큐브의 차원에 대한 읽기 또는 읽기/쓰기 권한이 있으면 각 차원 특성 멤버에 대한 보안(차원 보안)을 정의할 수 있습니다. 기본적으로 데이터베이스 역할은 읽기 권한을 가진 큐브에 있는 모든 차원 특성의 모든 멤버에 액세스할 수 있습니다. 역할 멤버가 특정 액세스 권한(AllowedSet)을 갖거나 구체적으로 액세스 권한을 거부한(DeniedSet) 특성 멤버 집합을 각 차원 특성에 대해 구체적으로 정의할 수 있습니다. 각 특성 계층에 대한 기본 멤버를 정의할 수도 있습니다. 기본적으로 All 멤버가 기본 멤버입니다. 특정 특성 멤버에 대한 읽기 권한을 거부하는 경우 All 멤버 값이 특성 계층의 모든 멤버에 대한 집계가 아니라 역할 멤버가 액세스할 수 있는 멤버의 집계가 되도록 하는 것이 좋습니다. 이 동작을 지정하려면 VisualTotals를 설정합니다. VisualTotals를 설정하면 미리 계산된 집계에서 가져오지 않고 쿼리 시 집계가 계산됩니다.

[!참고]

차원 역할의 멤버가 갖는 액세스 유형은 읽기 또는 읽기/쓰기 권한 등 부여된 차원 액세스 권한에 따라 다릅니다.

IsAllowed 속성 이해

IsAllowed 속성은 데이터베이스 역할이 특성 멤버에 액세스할 수 있는지 여부를 결정합니다. 기본적으로 차원에 대해 액세스 권한을 갖는 데이터베이스 역할은 특성 계층에 액세스할 수 없습니다.

AllowedSet 속성 이해

AllowedSet 속성은 MDX(Multidimensional Expressions) 식을 사용하여 데이터베이스 역할이 볼 수 있는 특성 멤버인 허용 집합을 결정합니다. 허용 집합에는 아무 특성 멤버도 포함되지 않거나(기본값) 특성 멤버의 전부 또는 일부가 포함될 수 있습니다. 특성에 대한 액세스를 허용하고 허용 집합의 멤버를 정의하지 않으면 모든 멤버에 대한 액세스 권한이 부여됩니다. 특성에 대한 액세스를 허용하고 특정한 특성 멤버 집합을 정의하면 명확하게 허용된 멤버만 표시됩니다. 허용 집합을 명확하게 정의하면 허용 집합을 정의한 후에 추가되는 특성 멤버의 표시가 제한될 수 있습니다.

한 특성의 허용 집합을 제한하면 다른 특성의 표시 여부가 영향을 받습니다. 예를 들어 Customer 특성의 허용 집합에는 일부 특성 멤버만 포함되지만 City 특성의 허용 집합에는 모든 특성 멤버가 포함된다고 가정합니다. 이 경우 City 특성의 멤버 중에서 Customer 특성의 허용 집합에 고객이 있는 구/군/시만 표시됩니다. 고객이 없는 구/군/시의 경우 이 구/군/시의 특성 멤버는 표시되지 않습니다. 즉, 특성 멤버는 이 특성 멤버가 하나 이상의 허용 집합 멤버와 함께 존재하는 경우에만 표시될 수 있습니다.

[!참고]

빈 특성 멤버 집합을 정의하면 데이터베이스 역할에 대해 어떤 특성 멤버도 표시되지 않습니다. 허용 집합이 없는 경우가 빈 집합으로 해석되지는 않습니다.

DeniedSet 속성 이해

DeniedSet 속성은 MDX 식을 사용하여 데이터베이스 역할의 액세스가 명시적으로 거부된 특성 멤버인 거부 집합을 결정합니다. 거부 집합에는 아무 특성 멤버도 포함되지 않거나 특성 멤버의 전부(기본값) 또는 일부가 포함될 수 있습니다. 기본적으로 거부 집합은 정의되어 있지 않습니다.

거부 집합에 특정한 특성 멤버 집합만 포함되어 있으면 그러한 특정 멤버에 대해서만 데이터베이스 역할의 액세스가 거부됩니다. 거부 집합을 명확하게 정의하면 거부 집합을 정의한 후에 추가되는 특성 멤버의 액세스 가능성이 영향을 받을 수 있습니다.

거부 집합에서 특정한 특성 집합을 정의하는 경우 이 거부 집합이 다른 특성의 액세스 가능성에 미치는 영향은 ApplyDenied 속성이 설정되어 있는지 여부에 따라 달라집니다. 예를 들어 State 특성에 대한 거부 집합이 있고 ApplyDenied 속성이 설정되어 있다고 가정합니다. 이 경우 데이터베이스 역할은 거부 집합 내의 해당 시/도에 대한 모든 Customer 특성에 액세스할 수 없습니다.

ApplyDenied 속성 이해

ApplyDenied 속성은 데이터베이스 역할에 특성 계층의 멤버가 표시되는지 여부를 결정할 때 거부 집합의 멤버가 사용되는지 나타냅니다. 기본적으로 ApplyDenied 속성은 각각의 특성 계층에 대해 True(설정)로 설정되어 있습니다.

[!참고]

ApplyDenied 속성에 따라 미치는 영향이 달라지는 거부 집합과는 달리 허용 집합은 데이터베이스 역할에 특성 계층의 멤버가 표시되는지 여부를 결정할 때 항상 적용됩니다.

ApplyDenied 속성이 설정되어 있고 거부 집합이 있는 경우 해당 계층에 거부 집합의 멤버가 하나라도 포함되어 있으면 데이터베이스 역할이 특성 계층의 모든 멤버에 액세스할 수 없습니다. 예를 들어 ApplyDenied 속성이 설정되어 있고 거부 집합이 State 특성에 있는 시/도로 구성되어 있다고 가정합니다. 이 경우 데이터베이스 역할은 State 특성뿐 아니라 거부 집합 내의 모든 시/도에 대한 Customers 특성에도 액세스할 수 없습니다.

ApplyDenied 속성이 해제되어 있고 거부 집합이 있으면 해당 계층에 거부 집합의 멤버가 포함되어 있더라도 데이터베이스 역할이 특성 계층의 모든 멤버에 액세스할 수 있습니다. 예를 들어 ApplyDenied 속성이 해제되어 있고 거부 집합이 State 특성에 있는 시/도로 구성되어 있다고 가정합니다. 이 경우 데이터베이스 역할은 State 특성에는 액세스할 수 없지만 거부 집합 내의 모든 시/도에 대한 Customers 특성에는 여전히 액세스할 수 있습니다.

VisualTotals 속성 이해

VisualTotals 속성은 표시되는 집계된 셀 값이 모든 셀 값에 따라 계산되는지 또는 데이터베이스 역할에 표시되는 셀 값에 따라서만 계산되는지 나타냅니다.

기본적으로 VisualTotals 속성은 해제(False)되어 있습니다. 이 기본 설정을 사용하면 Analysis Services가 계산할 셀 값을 선택하는 데 시간을 들이는 대신 모든 셀 값의 합계를 빠르게 계산할 수 있기 때문에 성능이 향상됩니다.

그러나 VisualTotals 속성이 해제된 경우 사용자가 집계된 셀 값을 사용하여 자신의 데이터베이스 역할이 액세스할 수 없는 특성 멤버의 값을 추론할 수 있다면 보안 문제가 발생할 수 있습니다. 예를 들어 Analysis Services가 세 개의 특성 멤버 값을 사용하여 집계된 셀 값을 계산한다고 가정합니다. 이 경우 데이터베이스 역할은 이러한 세 개의 특성 멤버 중 두 개를 볼 수 있는 액세스 권한을 가집니다. 이 데이터베이스 역할의 멤버는 집계된 셀 값을 사용하여 세 번째 특성 멤버의 값을 추론할 수 있습니다.

사용자가 자신의 데이터베이스 역할이 액세스할 수 없는 특성 멤버의 값을 추론할 수 있는 경우 최상의 보안 방법은 해당 특성에 대해 VisualTotals 속성을 설정(True)하는 것입니다. VisualTotals 속성을 설정한 경우 데이터베이스 역할은 해당 역할이 사용 권한을 갖는 차원 멤버에 대해 집계된 합계만 볼 수 있습니다. 예를 들어 VisualTotals 속성을 설정한 경우 데이터베이스 역할은 해당 역할에 표시되는 시/도, 즉 State 특성의 멤버만 포함하는 집계된 합계를 보게 됩니다. 집계된 합계에는 모든 시/도에 대한 값이 포함되지 않습니다.

DefaultMember 속성 이해

DefaultMember 속성은 쿼리에 특성이 명시적으로 포함되어 있지 않을 때 클라이언트에 반환되는 데이터 집합을 결정합니다. 특성이 명시적으로 포함되어 있지 않으면 Analysis Services에서 특성에 대해 다음 기본 멤버 중 하나를 사용합니다.

  • 데이터베이스 역할이 특성에 대한 기본 멤버를 정의하면 Analysis Services에서 이 기본 멤버를 사용합니다.

  • 데이터베이스 역할이 특성에 대한 기본 멤버를 정의하지 않으면 Analysis Services에서 특성 자체에 대해 정의된 기본 멤버를 사용합니다. 특성이 집계할 수 없는 것으로 정의된 경우를 제외하고는 달리 지정하지 않는 한 특성에 대한 기본 멤버는 All 멤버입니다.

예를 들어 데이터베이스 역할이 Male을 Gender 특성에 대한 기본 멤버로 지정한다고 가정합니다. 쿼리가 Gender 특성을 명시적으로 포함하면서 이 특성에 대해 다른 멤버를 지정하는 경우가 아니면 Analysis Services에서 남성 고객만 포함하는 데이터 집합을 반환합니다. 기본 멤버를 설정하는 방법은 기본 멤버 정의를 참조하십시오.

차원의 멤버에 대한 액세스 권한 설정

차원의 멤버에 대한 액세스 권한을 설정하기 전에 먼저 여러 액세스 설정이 멤버 쿼리 시 반환되는 결과 집합에 미치는 영향을 보여 주는 예를 검토할 수 있습니다. 다음 항목에서는 이러한 설정 예를 제공합니다.

다양한 액세스 권한이 작동하는 방식을 이해한다면 이러한 사용 권한을 부여할 준비가 된 것입니다. 차원의 멤버에 액세스 권한을 부여하려면 사용자가 Analysis Services 서버 역할의 멤버이거나 모든(관리자) 권한을 가진 Analysis Services 데이터베이스 역할의 멤버여야 합니다.

Business Intelligence Development Studio를 사용하여 차원의 멤버에 액세스 권한을 부여할 때는 차원 데이터 액세스 탭의 기본 탭에 있는 표준 옵션을 사용하거나 고급 탭에 있는 사용자 지정 옵션을 사용해야 합니다.

중요 정보중요

Microsoft Windows 사용자나 그룹이 여러 데이터베이스 역할에 속하는 경우 이 사용자나 그룹에 대한 유효 사용 권한은 모든 데이터베이스 역할에 추가되며 이것을 사용 권한의 합집합이라고 합니다. 한 데이터베이스 역할은 특성 멤버에 대한 사용자 액세스를 거부하지만 다른 데이터베이스 역할이 이 특성 멤버에 대한 사용자 액세스 권한을 부여하는 경우 사용자는 해당 특성 멤버에 액세스할 수 있게 됩니다.

기본 탭을 사용하여 데이터베이스 역할에 차원의 멤버에 대한 액세스 권한을 부여하려면

  1. SQL Server Management Studio에서 Analysis Services 인스턴스에 연결하고 개체 탐색기에서 해당 데이터베이스에 대한 역할을 확장한 다음 데이터베이스 역할을 클릭하거나 새 데이터베이스 역할을 만듭니다.

  2. 페이지 선택 창에서 차원 사용자 지정 데이터 액세스를 클릭하고 차원 목록에서 차원을 선택한 다음 고급 탭에서 특성 허용을 선택합니다.

    이 옵션을 선택하면 IsAllowed 속성이 True로 설정됩니다.

  3. 특성 목록에서 데이터베이스 역할에 표시될 멤버를 지정할 특성을 선택합니다.

  4. 특정 특성 멤버에 대한 액세스를 거부하려면 거부된 멤버 집합 상자에 해당 특성 멤버에 대한 MDX 식을 입력합니다. 다른 모든 특성 멤버는 볼 수 있습니다.

    • 특정 멤버에 대한 액세스만 허용하려면 허용된 멤버 집합 상자에 해당 특성 멤버에 대한 MDX 식을 입력합니다. 다른 모든 특성 멤버는 볼 수 없습니다.

고급 탭을 사용하여 데이터베이스 역할에 차원의 멤버에 대한 액세스 권한을 부여하려면

  1. SQL Server Management Studio에서 Analysis Services 인스턴스에 연결하고 개체 탐색기에서 해당 데이터베이스에 대한 역할을 확장한 다음 데이터베이스 역할을 클릭하거나 새 데이터베이스 역할을 만듭니다.

  2. 페이지 선택 창에서 차원 사용자 지정 데이터 액세스를 클릭하고 차원 목록에서 차원을 선택한 다음 고급 탭에서 특성 허용을 선택합니다.

    이 옵션을 선택하면 IsAllowed 속성이 True로 설정됩니다.

  3. 특성 목록에서 데이터베이스 역할에 표시될 멤버를 지정할 특성을 선택합니다.

  4. 특정 특성 멤버에 대한 액세스를 거부하려면 거부된 멤버 집합 상자에 해당 특성 멤버에 대한 MDX 식을 입력합니다. 다른 모든 특성 멤버는 볼 수 있습니다.

    특정 멤버에 대한 액세스만 허용하려면 허용된 멤버 집합 상자에 해당 특성 멤버에 대한 MDX 식을 입력합니다. 다른 모든 특성 멤버는 볼 수 없습니다.