보안

QlikView에서 보안 메커니즘을 설정하는 방법에는 QlikView 문서 스크립트에 구축하는 방법과 QlikView Publisher를 사용하여 설정하는 방법 등 두 가지가 있습니다.

인증 및 권한 부여

인증은 본인 여부를 확인하는 프로세스입니다. QlikView는 Windows 운영 체제에서 인증을 수행하게 하거나 사용자 ID 및 비밀번호(Windows 사용자 ID 및 비밀번호와는 다름)를 요청하거나 간단한 인증 방식으로 QlikView 라이센스 키를 사용할 수 있습니다.

권한 부여는 신원이 확인된 사람에게 리소스 사용 권한이 있는지 확인하는 것입니다. QlikView는 Windows 운영 체제가 권한을 부여하게 하거나 자체 권한 부여를 수행할 수 있습니다. 후자의 경우 보안 테이블이 스크립트에 구축되어야 합니다.

QlikView Publisher 사용 시 보안

QlikView Publisher가 보안을 처리하도록 설정되어 있을 경우 각 QlikView 파일은 각각 관련 사용자 또는 사용자 그룹에 속하는 데이터를 포함하는 여러 개의 파일로 분할됩니다. 이러한 파일은 올바른 OS 보안 설정과 함께 폴더에 저장됩니다. 즉, QlikView는 운영 체제가 인증 및 권한 부여를 수행하게 할 수 있습니다.

단, 파일 자체에 구축된 보안은 없으므로 다운로드된 파일에 대한 보호 수단이 없습니다.

한 개의 단일 파일이 여러 개로 분할되므로 일반적으로 파일 크기가 더 작을 수 있으며, 사용자는 자신의 데이터가 포함된 파일만 열 수 있습니다. 하지만 한편으로는 동일한 데이터를 포함한 여러 개의 파일이 로드되는 경우가 있으므로 QlikView Server에서 모든 데이터가 한 파일에 보관되었을 때보다 더 많은 메모리를 사용하게 될 가능성이 높습니다.

자세한 내용은 QlikView Publisher 설명서를 참조하십시오.

QlikView 스크립트에서 섹션 액세스 사용 시 보안

QlikView 스크립트에서 섹션 액세스가 보안을 처리하도록 설정되어 있을 경우 파일 하나에 여러 사용자 또는 사용자 그룹에 대한 데이터를 보관할 수 있습니다. QlikView는 인증 및 권한 부여에 섹션 액세스의 정보를 사용하며 사용자만이 본인의 데이터를 볼 수 있도록 데이터의 용량을 동적으로 축소합니다.

보안이 파일 자체에 구축되어 있으므로 다운로드한 파일도 어느 정도까지는 보호됩니다. 단, 보안 요구가 높은 경우 파일 다운로드 및 오프라인 사용이 방지되어야 합니다. 파일은 QlikView Server를 통해서만 게시되어야 합니다.

모든 데이터가 한 파일에 보관되므로 이 파일의 크기는 매우 클 가능성이 높습니다.

QlikView documents can be made invisible in offline mode. To make an offline user document invisible, add the following attribute in the document information section of a user document using the QMC:

  • Name: Invisible
  • Value: True

아래의 모든 정보는 QlikView 스크립트에서 섹션 액세스를 사용하는 보안 방식을 참조하고 있습니다.

스크립트의 섹션

액세스 제어는 QlikView가 일반적으로 데이터를 로드하는 것과 동일한 방식으로 로드한 하나 또는 여러 개의 보안 테이블을 통해 관리됩니다. 따라서 이러한 테이블은 일반 데이터베이스에 저장할 수 있습니다. 보안 테이블을 관리하는 스크립트 문은 section access 문으로 시작하는 액세스 섹션 내에 지정됩니다.

스크립트에 액세스 섹션이 정의되어 있는 경우 '일반' 데이터를 로드하는 스크립트 부분은 section application 문으로 시작하는 다른 섹션에 지정해야 합니다.

​예:  

Section Access;

Load * inline

[ACCESS,USERID,PASSWORD

ADMIN, A,X

USER,U,Y ];

Section Application;

Load... ... from... ...

섹션 액세스의 액세스 수준

지정된 사용자 또는 사용자 그룹에 QlikView 문서에 대한 액세스 권한을 부여할 수 있습니다. 보안 테이블에서 사용자에게 ADMIN 또는 USER 액세스 수준을 할당할 수 있습니다. 액세스 수준이 할당되지 않은 사용자는 QlikView 문서를 열 수 없습니다.

ADMIN 액세스 권한이 있는 사람은 문서의 모든 부분을 변경할 수 있습니다. ADMIN 액세스 권한이 있는 사람은 문서 속성시트 속성 대화 상자의 보안 페이지를 사용하여 사용자가 문서를 수정할 수 없게 제한할 수 있습니다. USER 권한이 있는 사람은 보안 페이지에 액세스할 수 없습니다.

참고: ADMIN 권한은 로컬 문서에만 해당됩니다. 서버에서 여는 문서는 항상 USER 권한으로 액세스됩니다.

섹션 액세스 시스템 필드

액세스 수준은 섹션 액세스 내에서 로드되는 하나 또는 여러 개의 테이블을 통해 사용자에게 할당됩니다. 이러한 테이블에는 여러 가지 사용자 관련 시스템 필드(일반적으로 USERID 및 PASSWORD)와 액세스 수준인 ACCESS를 정의하는 필드가 있습니다. 모든 섹션 액세스 시스템 필드는 인증 또는 권한 부여에 사용됩니다. 전체 섹션 액세스 시스템 필드에 대한 설명은 아래에 나와 있습니다.

액세스 섹션에서는 보안 필드의 전체 또는 일부 조합이 로드되거나 아무런 액세스 필드도 로드되지 않을 수 있습니다. 따라서 USERID를 사용할 필요가 없습니다. 다른 필드(예: 일련 번호만)를 사용하여 권한을 부여할 수도 있습니다.

 

ACCESS 해당 사용자가 가지고 있어야 하는 액세스 권한을 정의하는 필드입니다.
USERID 허용되는 사용자 ID를 포함하는 필드입니다. QlikView는 사용자 ID를 요청하며 이 필드의 값과 비교합니다. 이 사용자 ID는 Windows 사용자 ID와 동일하지 않습니다.
PASSWORD 허용되는 비밀번호를 포함하는 필드입니다. QlikView는 비밀번호를 요청하며 이 필드의 값과 비교합니다. 이 비밀번호는 Windows 비밀번호와 동일하지 않습니다.
SERIAL QlikView 일련 번호에 해당하는 숫자를 포함하는 필드입니다.
예: 4900 2394 7113 7304
QlikView는 사용자의 일련 번호를 확인하고 이 필드의 값과 비교합니다.
NTNAME Windows NT 도메인 사용자 이름 또는 그룹 이름에 해당하는 문자열을 포함하는 필드입니다.
QlikView는 OS에서 로그온 정보를 가져와서 이 필드의 값과 비교합니다.
NTDOMAINSID Windows NT 도메인 SID에 해당하는 문자열을 포함하는 필드입니다.
예: S-1-5-21-125976590-4672381061092489882
QlikView는 OS에서 로그온 정보를 가져와서 이 필드의 값과 비교합니다.
NTSID Windows NT SID를 포함하는 필드입니다.
예: S-15-21-125976590-467238106-1092489882-1378
QlikView는 OS에서 로그온 정보를 가져와서 이 필드의 값과 비교합니다.
OMIT

이 특정 사용자에 대해 생략되어야 하는 필드를 포함하는 필드입니다. 와일드카드가 사용될 수 있으며 필드는 비워둘 수 있습니다. 이 작업을 수행하는 간편한 방법은 하위 필드를 사용하는 것입니다.

참고: 기본 데이터 구조가 변경될 수 있으므로 키 필드에 OMIT를 적용해서는 안 됩니다. 이는 논리적 섬과 계산 비일관성을 만들어낼 수 있습니다.

QlikView는 QlikView 일련 번호와 SERIAL 필드, Windows NT 사용자 이름 및 그룹과 NTNAME, Windows NT 도메인 SID와 NTDOMAINSID, Windows NT SID와 NTSID를 비교합니다. 추가로 사용자 ID 및 비밀번호를 요청하고 USERIDPASSWORD 필드와 비교합니다.

사용자 ID, 비밀번호 및 환경 속성의 확인된 조합이 section access 테이블에서도 확인될 경우 해당 액세스 수준으로 문서가 열립니다. 그렇지 않을 경우 QlikView는 문서에 대한 사용자 액세스를 거부합니다. 사용자 ID 및/또는 비밀번호를 3번 넘게 잘못 입력할 경우 전체 로그온 절차를 반복해야 합니다.

QlikView의 상징인 동일한 내부 논리가 액세스 섹션에서도 사용되므로 보안 필드는 다른 테이블에 배치될 수 있습니다. (따라서 시스템 관리자가 보안 테이블로 QlikView 문서를 만들 수 있습니다. 이 경우 해당 필드 값을 클릭하면 정확한 일련 번호, 비밀번호 등이 시뮬레이션됩니다.)

로그온 절차에서 QlikView는 먼저 SERIAL, NTNAME, NTDOMAINSIDNTSID를 확인하여 이 정보가 해당 문서에 대한 사용자 액세스를 허용하기에 충분한지 확인합니다. 확인될 경우 QlikView는 사용자 ID 및 비밀번호를 요청하지 않고 문서를 엽니다.

일부 액세스 필드만 로드된 경우 위의 요건이 적절하게 사용됩니다.

section access의 Load 또는 Select 문에 있는 모든 필드는 대문자로 작성해야 합니다. 데이터베이스에 있는 소문자를 포함한 필드 이름은 Load 또는 Select 문에서 읽기 전에 upper 함수를 사용하여 대문자로 변환해야 합니다.

참조: Upper - 스크립트 및 차트 함수

단, QlikView 문서를 여는 최종 사용자가 입력한 사용자 ID 및 비밀번호는 대소문자를 구분합니다.

와일드카드(즉, *)는 이 필드의 모든(나열된) 값(즉, 이 테이블에 나열된 값)으로 해석됩니다. 별표 기호가 스크립트의 액세스 섹션에서 로드된 테이블의 시스템 필드(USERID, PASSWORD, NTNAME 또는 SERIAL) 중 하나에서 사용된 경우 이 필드에 사용 가능한(나열되지 않은) 모든 값으로 해석됩니다.

참고: QVD 파일에서 데이터를 로드할 경우 upper 함수를 사용하면 로딩 속도가 저하됩니다.
참고: 인라인 문에서 액세스 테이블을 생성하려면 액세스 제한 테이블 마법사를 사용하십시오.
참고: 섹션 액세스를 활성화한 경우 여기에 나열된 섹션 액세스 시스템 필드 이름을 데이터 모델의 필드 이름으로 사용할 수 없습니다.

예 1:  

일련 번호만 확인됩니다. 한 대의 특정 컴퓨터가 ADMIN 액세스 권한을 얻습니다. 다른 모든 컴퓨터는 USER 액세스 권한을 얻습니다. 별표는 “임의의 일련 번호”를 표시하는 데 사용할 수 있습니다.

ACCESS SERIAL
ADMIN 4900 2394 7113 7304
USER *

예 2:  

QlikView가 배치 작업으로 실행되는 서버와 관리자가 ADMIN 액세스 권한을 얻습니다. 도메인의 다른 모든 사람은 사용자 ID 및 비밀번호로 “USER”를 입력할 경우 USER 액세스 권한을 얻습니다.

ACCESS SERIAL NTDOMAINSID USERID PASSWORD
ADMIN * S-1-5-21-125976590-467238106-1092489882 ADMIN ADMIN
ADMIN 4900 2394 7113 7304 * * *
USER * S-1-5-21-125976590-467238106-1092489882 USER USER

QlikView 기능에 대한 제한

문서 속성: 보안 페이지와 시트 속성: 보안 페이지에 있는 콘트롤을 통해 특정 메뉴 항목에 대한 액세스를 허용하지 않고 레이아웃의 변경을 금지할 수 있습니다. 이러한 설정을 실질적인 보호 수단으로 사용하려는 경우 해당 문서 사용자가 USER로 로그인하는 것이 중요합니다. ADMIN으로 로그인한 사람은 누구나 언제라도 보안 설정을 변경할 수 있습니다.

USER 권한으로 문서를 연 사용자는 속성 대화 상자에 보안 페이지가 표시되지 않습니다.

동적 데이터 축소

QlikView 및 QlikView Server는 section access 로그인에 따라 사용자에게 문서의 데이터 일부를 숨길 수 있는 기능을 지원합니다.

첫째, OMIT 시스템 필드를 사용하여 필드(열)를 숨길 수 있습니다.

둘째, 실제 데이터와 section access 데이터를 연결하여 레코드(행)를 숨길 수 있습니다. section accesssection application에 공통된 이름의 필드를 하나 이상 추가하면 표시/제외할 값에 대한 선택을 제어할 수 있습니다. 사용자 로그인 후 QlikView는 section access의 필드 선택을 정확하게 동일한 필드 이름(필드 이름은 대문자로 작성되어야 함)으로 section application의 필드에 복사하려고 시도합니다. 선택이 완료되면 QlikView는 이러한 선택에 의해 제외된 모든 데이터를 해당 사용자에게 영구적으로 숨깁니다.

이 절차를 수행하려면 문서 속성: 열기 페이지에서 섹션 액세스를 기준으로 초기 용량 축소 옵션을 선택해야 합니다. 이 기능을 QlikView Server가 아닌 다른 방법을 통해 배포할 문서에 사용하는 경우 데이터 보호를 유지하려면 문서 속성의 동일한 페이지에 있는 이진 로드 금지 옵션을 선택해야 합니다.

참고: section access에서는 모든 필드 이름 및 필드 값이 기본적으로 대문자로 변환되므로 위에서 설명한 전송에 사용된 모든 필드 이름과 이 필드의 모든 필드 값은 대문자여야 합니다.

​예:  

section access;

load * inline [

ACCESS, USERID,REDUCTION, OMIT

ADMIN, ADMIN,*,

USER, A,1

USER, B, 2,NUM

USER, C, 3, ALPHA

];

section application;

T1:

load *,

NUM AS REDUCTION;

load

Chr( RecNo()+ord(‘A’)-1) AS ALPHA,

RechNo() AS NUM

AUTOGENERATE 3;

이제 REDUCTION(소문자) 필드가 section accesssection application 모두에 있습니다(모든 필드 값도 대문자임). 두 필드는 일반적으로 완전히 다르고 별개지만 섹션 액세스를 기준으로 초기 용량 축소 옵션을 선택할 경우 서로 연결되어 사용자에게 표시되는 레코드 수를 축소합니다.

section access에서 OMIT 필드는 사용자에게 숨겨야 하는 필드를 정의합니다.

결과는 다음과 같습니다.

사용자 A는 REDUCTION=1에 연결된 레코드를 제외한 모든 필드를 볼 수 있습니다.

사용자 B는 NUM과 REDUCTION=2에 연결된 레코드를 제외한 모든 필드를 볼 수 있습니다.

사용자 C는 ALPHA와 REDUCTION=3에 연결된 레코드를 제외한 모든 필드를 볼 수 있습니다.

상속된 액세스 제한

이진 로드는 액세스 제한이 새로운 QlikView 문서에 의해 상속되도록 합니다. 이 새 문서에 대한 ADMIN 권한이 있는 사람은 새로운 access 섹션을 추가하여 이 새 문서의 액세스 권한을 변경할 수 있습니다. USER 권한이 있는 사람은 스크립트를 실행하고 스크립트를 변경하여 본인의 데이터를 이진 로드 파일에 추가할 수 있습니다. USER 권한이 있는 사람은 액세스 권한을 변경할 수 없습니다. 따라서 데이터베이스 관리자는 이진 로드 QlikView 문서에 대해서도 사용자 액세스를 제어할 수 있습니다.

암호화

QlikView와 QlikView Windows 클라이언트 간 통신은 암호화됩니다. 단, Ajax 클라이언트를 사용할 경우에는 통신이 암호화되지 않습니다.

또한 모든 QlikView 문서는 암호화되므로 뷰어, 디버거 등으로 정보를 읽을 수 없습니다.