사용자 액세스 보안 아키텍처

Microsoft SQL Server Analysis Services에서는 Microsoft Windows로 사용자를 인증합니다. 기본적으로 Analysis Services 내에서 사용 권한이 있는 인증된 사용자만 Analysis Services에 연결할 수 있습니다. 사용자가 Analysis Services에 연결한 후에는 Windows 역할의 멤버 자격이나 해당 사용자가 속한 Analysis Services 역할에 할당된 사용 권한에 따라 Analysis Services 내에서의 사용자의 사용 권한이 결정됩니다.

  • Analysis Services에는 단일 고정 서버 역할이 있으며 이 역할의 멤버에게는 전체 인스턴스 내에서 모든 태스크를 수행할 수 있는 사용 권한이 부여됩니다.

  • 고정 서버 역할의 멤버가 아닌 사용자는 하나 이상의 데이터베이스 역할의 멤버가 될 수 있습니다. 각 데이터베이스 역할에는 사용자 지정 사용 권한 집합이 있으며 이를 통해 사용자는 특정 데이터베이스 내에서 데이터에 액세스하고 태스크를 수행할 수 있습니다.

  • 데이터베이스 역할에는 관리자 권한, 개체 처리 권한 및 개체 메타데이터 보기 권한을 비롯하여 여러 수준에서 각 Analysis Services 데이터베이스의 데이터를 보고 수정할 수 있는 사용 권한이 부여될 수 있습니다.

  • 관리자 권한이 있는 데이터베이스 역할의 멤버는 데이터베이스 내의 모든 데이터를 보거나 업데이트할 수 있습니다. 다른 데이터베이스 역할의 멤버는 자신에게 해당 사용 권한이 특별히 부여된 데이터 개체만 보거나 업데이트할 수 있습니다.

  • Analysis Services 데이터베이스 내의 사용 권한은 처음에 데이터베이스 수준에서 부여됩니다. 데이터베이스 수준의 사용 권한이 있는 데이터베이스 역할에는 데이터베이스 내의 각 개체에 대한 특정 사용 권한을 부여해야 합니다. 데이터베이스 및 큐브 차원, 개별 차원 멤버, 큐브, 큐브 내 개별 셀, 마이닝 구조, 마이닝 모델, 데이터 원본 및 저장 프로시저 등의 개체에 대한 사용 권한을 역할에 부여할 수 있습니다.

  • 이러한 보안 아키텍처 구성 요소와 함께 Analysis Services는 모든 클라이언트/서버 통신을 암호화하여 권한이 없는 사용자가 정보에 무단으로 액세스하는 위험을 줄입니다. 잘못 구성하거나 부적절한 환경에서 사용할 경우 보안을 손상시킬 수 있는 Analysis Services의 기능은 기본적으로 해제됩니다. 예를 들어 인증을 거치지 않고 사용자가 Analysis Services에 연결할 수 있게 하거나 일반 텍스트로 제출되는 인증을 받아들이는 경우가 있습니다. 그러나 이 경우 잘못하면 보안이 손상될 수 있으므로 이러한 유형의 기능을 실행하려면 기본 설정을 수정해야 합니다.

Windows 인증

Analysis Services에 대한 액세스는 Microsoft Windows 인증을 기반으로 합니다. 이 인증 모델에서는 Windows 운영 체제에 의해 인증된 사용자만 Analysis Services에 저장된 데이터에 액세스하고 Analysis Services 개체를 관리할 수 있습니다. 운영 체제에서 인증을 수행하게 하면 Analysis Services에서 보안 유효성 검사 및 암호 암호화, 감사, 암호 만료, 최소 암호 길이뿐만 아니라 여러 번 잘못된 로그온 요청이 있을 경우 계정 잠금 등의 Windows 보안 기능을 이용할 수 있습니다.

참고

익명 액세스를 허용하도록 Analysis Services 인스턴스를 구성하면 Windows에서 사용자가 인증되지 않습니다.

Windows 인증과 Analysis Services는 다음과 같은 방식으로 함께 작동합니다.

  1. 사용자가 Windows 네트워크에 로그온하면 Windows 도메인 컨트롤러에서 사용자 이름과 암호의 유효성을 검사하여 사용자의 네트워크 인증 자격 증명을 설정합니다.

  2. 나중에 사용자가 Analysis Services에 연결하려고 하면 Analysis Services에서 Windows 도메인 컨트롤러와 함께 사용자의 네트워크 인증 자격 증명이 유효한지 검사합니다.

권한 부여

사용자 인증 후 Analysis Services는 해당 사용자에게 데이터 보기, 데이터 업데이트, 메타데이터 보기 또는 관리 태스크 수행을 위한 사용 권한이 있는지 확인합니다. 사용자 또는 사용자가 속한 그룹이 Analysis Services 인스턴스 내에서 특정한 유형의 사용 권한을 갖고 있으면 Analysis Services에서 사용자 연결이 허용됩니다. 기본적으로 Analysis Services에서는 Analysis Services 인스턴스 내에서 특정한 유형의 사용 권한이 없는 사용자의 연결은 허용하지 않습니다.

그러나 권한 부여는 사용자가 Analysis Services에 연결한 후에도 계속됩니다. 사용자가 서버 저장 프로시저, DMX(Data Mining Extensions) 문, MDX(Multidimensional Expressions) 쿼리 또는 AMO(Analysis Management Objects) 명령을 실행하는 등 Analysis Services 내에서 작업할 때 권한 부여는 계속됩니다. Analysis Services에서는 동작을 수행하거나 개체에 액세스해야 할 때마다 해당 명령을 수행하거나 개체에 액세스하는 사용자의 권한을 확인합니다. 사용자에게 적절한 사용 권한이 없으면 Analysis Services는 사용 권한 오류를 반환합니다.

서버 역할 및 데이터베이스 역할

Analysis Services에는 서버 역할과 데이터베이스 역할이라는 두 가지 역할 유형이 있습니다. 다음은 이러한 두 역할 간의 차이점에 대한 간단한 설명입니다.

  • 서버 역할은 하나만 있으며 이 역할의 멤버는 Analysis Services 인스턴스 내의 모든 관리자 권한을 갖습니다.

    참고

    로컬 컴퓨터의 Administrators 로컬 그룹 멤버는 자동으로 Analysis Services 인스턴스의 서버 역할 멤버가 됩니다.

  • 데이터베이스 역할은 여러 개 있을 수 있습니다. 서버 역할의 멤버는 각 데이터베이스 내에서 데이터베이스 역할을 만들고 큐브, 차원, 셀, 마이닝 구조, 마이닝 모델 및 데이터 원본 개체에 대한 읽기 또는 읽기/쓰기 권한 등의 관리 또는 사용자 권한을 데이터베이스 역할에 부여한 후 Windows 사용자 및 그룹을 추가합니다.

    중요

    역할 권한은 누적됩니다.Windows 사용자 또는 그룹이 한 데이터베이스 역할을 통해 획득하는 사용 권한은 동일한 Windows 사용자 또는 그룹이 다른 데이터베이스 역할을 통해 획득하는 사용 권한에 추가됩니다.한 역할은 사용자나 그룹에게 특정 태스크를 수행하거나 데이터를 볼 수 있는 사용 권한을 부여하지 않지만 다른 역할이 이 사용자나 그룹에게 이러한 사용 권한을 부여하는 경우 해당 사용자나 그룹은 작업을 수행하거나 데이터를 볼 수 있게 됩니다.

관리자 권한

서버 역할의 멤버는 자동으로 모든 관리자 권한을 갖지만 데이터베이스 역할의 멤버는 그렇지 않습니다. 데이터베이스 역할에 관리자 권한이라고도 하는 모든 권한을 부여하거나 다음과 같은 작업을 수행할 수 있는 제한된 관리자 권한을 부여할 수 있습니다.

  • 데이터베이스 처리

  • 데이터베이스 메타데이터 읽기

  • 하나 이상의 차원 처리

  • 하나 이상의 차원 정의 읽기

  • 하나 이상의 큐브 처리

  • 하나 이상의 큐브 정의 읽기

  • 하나 이상의 마이닝 구조 처리

  • 하나 이상의 마이닝 모델 처리

  • 하나 이상의 마이닝 구조 정의 읽기

  • 하나 이상의 마이닝 모델 정의 읽기

  • 하나 이상의 데이터 원본 정의 읽기

서버 역할의 멤버와 모든 권한이 있는 데이터베이스 역할의 멤버만이 추가 사용 권한 없이도 Analysis Services 데이터를 읽을 수 있습니다. 다른 사용자는 해당 데이터베이스 역할에서 명시적으로 차원, 큐브, 셀, 마이닝 모델과 같은 Analysis Services 내의 데이터 개체에 대한 읽기 또는 읽기/쓰기 권한을 부여하는 경우에만 Analysis Services 데이터를 읽을 수 있습니다.

차원 수준 보안

데이터베이스 역할은 해당 멤버에 특정 데이터베이스 차원의 차원 멤버를 보거나 업데이트할 사용 권한을 부여할지 여부를 지정할 수 있습니다. 또한 데이터베이스 역할이 사용 권한을 갖고 있는 각 차원 내에서 모든 차원 멤버가 아닌 특정 차원 멤버만 보거나 업데이트할 사용 권한을 역할에 부여할 수 있습니다. 데이터베이스 역할이 특정 차원 및 차원 멤버의 전체 또는 일부를 보거나 업데이트할 사용 권한을 갖고 있지 않은 경우 해당 데이터베이스 역할의 멤버는 차원이나 해당 차원의 멤버를 볼 수 없습니다.

참고

데이터베이스 역할에 부여되는 차원 사용 권한은 데이터베이스 차원을 기반으로 하는 큐브 차원에 적용됩니다. 단, 데이터베이스 차원을 사용하는 큐브 내에서 명시적으로 다른 권한이 부여된 경우는 예외입니다.

참조 항목: 차원 액세스 부여차원 데이터에 대한 사용자 지정 액세스 부여

큐브 수준 보안

데이터베이스 역할은 해당 멤버에 데이터베이스의 하나 이상의 큐브에 대한 읽기 또는 읽기/쓰기 권한을 부여할지 여부를 지정할 수 있습니다. 데이터베이스 역할이 하나 이상의 큐브에 대한 읽기 또는 읽기/쓰기 권한을 갖고 있지 않은 경우 해당 데이터베이스 역할의 멤버는 역할을 통해 차원 멤버를 볼 수 있는 사용 권한이 있더라도 데이터베이스의 큐브는 볼 수 없습니다.

참조 항목: 큐브 액세스 부여.

셀 수준 보안

데이터베이스 역할은 해당 멤버에 큐브 내의 전체 또는 일부 셀에 대한 읽기, 불확정 읽기 또는 읽기/쓰기 권한을 부여할지 여부를 지정할 수 있습니다. 데이터베이스 역할이 큐브 내의 셀에 대한 사용 권한을 갖고 있지 않은 경우 해당 데이터베이스 역할의 멤버는 큐브 데이터를 볼 수 없습니다. 특정 차원을 볼 수 있는 데이터베이스 역할의 사용 권한이 차원 보안에 따라 거부되는 경우 셀 수준 보안은 해당 차원의 셀 멤버를 포함하도록 데이터베이스 역할의 사용 권한을 확장할 수 없습니다. 반대로 차원의 멤버를 볼 수 있는 사용 권한이 데이터베이스 역할에 부여된 경우에는 셀 수준 보안을 사용하여 데이터베이스 역할 멤버가 볼 수 있는 차원에서 셀 멤버를 제한할 수 있습니다.

참조 항목: 셀 데이터에 사용자 지정 액세스 부여.

마이닝 구조, 마이닝 모델 및 데이터 원본 보안

데이터베이스 역할은 해당 멤버에 마이닝 구조와 마이닝 모델에 대한 읽기 또는 읽기/쓰기 권한을 부여할지 여부를 지정할 수 있습니다. 또한 데이터베이스 역할에 원본 데이터로 드릴스루할 수 있는 사용 권한과 하나 이상의 마이닝 모델에서 검색할 수 있는 사용 권한을 부여할 수 있습니다. 데이터베이스 역할에 데이터 원본 개체에 대한 읽기/쓰기 권한을 부여할 수도 있습니다. 이러한 사용 권한이 있는 역할은 OPENQUERY 절에서 데이터 원본을 참조하고 데이터 원본 개체에 정의된 연결 문자열을 사용할 수 있습니다.

참조 항목: 마이닝 구조 및 마이닝 모델에 대한 액세스 부여데이터 원본에 대한 액세스 부여

저장 프로시저 보안

Analysis Services의 저장 프로시저는 Microsoft .NET 프로그래밍 언어로 작성된 외부 루틴이며 Analysis Services 기능을 확장합니다. 개발자는 저장 프로시저를 사용하여 언어 간 통합, 예외 처리, 버전 관리 지원, 배포 지원 및 디버깅 지원을 이용할 수 있습니다.

모든 사용자가 저장 프로시저를 호출할 수 있습니다. 저장 프로시저 구성에 따라 프로시저를 호출하는 사용자 또는 익명 사용자의 컨텍스트에서 프로시저가 실행될 수 있습니다. 익명 사용자에게는 보안 컨텍스트가 없으므로 Analysis Services 인스턴스 구성에 이 기능을 사용하여 익명 액세스를 허용합니다.

Analysis Services에서 저장 프로시저를 실행하기 전에 사용자가 해당 저장 프로시저를 호출하면 Analysis Services에서 저장 프로시저 내의 동작을 평가합니다. 이 경우 Analysis Services에서는 사용자에 부여된 사용 권한과 프로시저 실행에 사용되는 권한 집합의 공통 요소를 기준으로 저장 프로시저의 작업을 평가합니다. 사용자의 데이터베이스 역할로는 수행할 수 없는 동작이 저장 프로시저에 있는 경우 해당 작업은 수행되지 않습니다.

다음은 저장 프로시저 실행에 사용되는 권한 집합입니다.

  • **안전   **안전 권한 집합을 사용하면 저장 프로시저에서 Microsoft .NET Framework의 보호된 리소스에 액세스할 수 없습니다. 이 권한 집합에서는 계산만 허용됩니다. 정보가 Analysis Services 외부로 누출되지 않고 사용 권한을 승격할 수 없으며 데이터 훼손 공격의 위험이 최소화된다는 점에서 가장 안전한 권한 집합입니다.

  • **외부 액세스   **외부 액세스 권한 집합을 사용하면 저장 프로시저에서 관리 코드를 사용하여 외부 리소스에 액세스할 수 있습니다. 저장 프로시저를 이 권한 집합으로 설정하면 서버 불안정을 일으키는 프로그래밍 오류가 발생하지 않습니다. 그러나 서버 외부로 정보가 누출되거나 권한 승격 및 데이터 훼손 공격의 가능성이 있습니다.

  • **제한 없음   **제한 없음 권한 집합을 사용하면 저장 프로시저에서 아무 코드나 사용하여 외부 리소스에 액세스할 수 있습니다. 저장 프로시저를 이 권한 집합으로 설정하면 저장 프로시저의 보안이나 안정성이 보장되지 않습니다.

암호화

기본적으로 Analysis Services에서는 클라이언트와 Analysis Services 인스턴스 간의 모든 통신이 암호화되어야 합니다.

기본적으로 해제

Analysis Services 인스턴스는 기본적으로 보안되도록 디자인되었습니다. 따라서 보안을 손상시킬 수 있는 기능은 기본적으로 해제됩니다. 다음 기능은 기본적으로 해제되며 이러한 기능을 사용하려면 명확하게 설정해야 합니다.

  • HTTP 연결

  • 추적

  • 저장 프로시저

  • 원격 파티션

  • 연결된 개체(대상)

  • 연결된 개체(원본)

  • 데이터 마이닝 집계

  • 클라이언트 보호 수준

  • 클라이언트 인증 필요

  • Active Directory 통합

  • 임시 OpenRowset 쿼리

  • 8.0 클라이언트 연결

  • 충돌 보고서