Sicherheit

Ein Sicherheitsmechanismus in QlikView kann auf zwei verschiedene Arten eingerichtet werden: als Sicherheitsregelung über den QlikView Publisher oder als Zugriffskontrolle im Skript des QlikView-Dokuments.

Authentifizierung und Autorisierung

Bei der Authentifizierung wird die Identität eines Benutzers geprüft. Die Authentifizierung kann über drei Wege erfolgen: entweder über das Betriebssystem Windows, oder indem QlikView einen Benutzernamen und ein Passwort abfragt (unabhängig vom Windows-Benutzernamen und Passwort), oder es wird einfach die QlikView-Lizenznummer geprüft.

Bei der Autorisierung wird geprüft, welche Rechte der identifizierte Benutzer in Bezug auf die Ressource hat. Die Autorisierung kann entweder über das Windows- Betriebssystem erfolgen oder in QlikView selbst. Für letzteres muss eine Zugriffstabelle im QlikView-Skript geladen werden.

Sicherheitsregelung über den QlikView Publisher

Benutzen Sie den QlikView Publisher zur Regelung von Datensicherheit und Zugriffskontrolle, wird jedes QlikView-Dokument in mehrere Dateien aufgesplittet, von denen jede die Daten für einen bestimmten Anwender oder eine Anwendergruppe enthält. Diese Dateien werden in Verzeichnissen abgelegt, für die im Betriebssystem die notwendigen Sicherheitseinstellungen getroffen sind, d. h. QlikView lässt das Betriebssystem die Authentifizierung und Autorisierung bezüglich dieser Dateien regeln.

In diesem Fall enthalten die Dokumente selbst keinerlei Sicherheitsmechanismen. Das bedeutet, wer in den Besitz dieser Dateien kommt, kann sie uneingeschränkt einsehen und nutzen.

Die Dateien sind im Allgemeinen etwas kleiner als das ursprüngliche Dokument, weil jede von ihnen nur einen Teil der Daten enthält. Da jeder Anwender aber das für ihn vorgesehene Dokument öffnet, kann es sein, dass ein QlikView-Server mehr Speicher benötigt, als wenn sämtliche Daten in einem Dokument angeboten werden, weil er mehrere Dateien statt einer einzigen in den Speicher laden muss.

Weitere Informationen finden Sie in der Dokumentation des QlikView Publishers.

Zugriffskontrolle innerhalb des Dokuments

Wird im Skript des Dokuments eine Zugriffskontrolle eingerichtet, dann kann dieses eine Dokument für alle Anwender oder Anwendergruppen benutzt werden. Authentifizierung und Autorisierung erfolgen innerhalb von QlikView. Dabei werden die Zugriffsdaten, die der Anwender eingibt, mit den im Dokument gespeicherten Daten verglichen, und aufgrund dieses Vergleichs wird der Datenbestand so eingeschränkt, dass jeder Anwender nur die für ihn vorgesehenen Daten einsehen kann.

Da die Zugriffskontrolle in das Dokument integriert ist, sind die Dateien auch dann geschützt, wenn sie versehentlich in falsche Hände gelangen sollten. Wenn die Sicherheitsanforderungen jedoch hoch sind, sollte das Herunterladen von Dateien und die Offline-Nutzung unterbleiben. Dateien sollten dann nur über den QlikView Server veröffentlicht werden.

Da sämtliche Daten in einer Datei gespeichert sind, kann die Datei sehr groß werden.

QlikView-Dokumente können im Offline-Modus unsichtbar gemacht werden. Um ein Benutzerdokument offline unsichtbar zu machen, fügen Sie dem Dokumentinformationen-Bereich eines Benutzerdokuments mithilfe von QMC das folgende Attribut hinzu:

  • Name:Ausblenden
  • Wert: Wahr

In den nachfolgenden Abschnitten ist die Zugriffskontrolle innerhalb des Dokuments näher erläutert.

Zugriffsabschnitt im Skript

Daten zur Regelung der Zugriffskontrolle verarbeitet QlikView wie andere Daten auch, d. h., sie werden in Form einer oder mehrerer Tabellen durch das Skript eingelesen. Diese Tabellen können demnach in einer normalen Datenbank gespeichert werden. Um eine Zugriffskontrolle einzurichten, wird das Skript in zwei Abschnitte unterteilt. Im Zugriffsabschnitt, eingeleitet durch den Befehl section access, werden die Daten zur Regelung der Zugriffskontrolle geladen.

Im Datenabschnitt, eingeleitet durch den Befehl section application, werden die "normalen" Daten in das Dokument eingelesen.

Example:  

Section Access;

Load * inline

[ACCESS,USERID,PASSWORD

ADMIN, A,X

USER,U,Y ];

Section Application;

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

Berechtigungsstufen

Anwendern oder Anwendergruppen können unterschiedliche Rechte in Bezug auf ein QlikView-Dokument gewährt werden. Dazu kann jedem Anwender in der Zugriffstabelle eine der Berechtigungsstufe ADMIN oder USER zugewiesen werden. Ist einem Anwender keine der beiden Berechtigungsstufen zugeordnet, hat er keinen Zugriff auf das QlikView-Dokument.

Anwender mit ADMIN-Rechten können das Dokument beliebig bearbeiten. Unter Sicherheit in den Dialogen Eigenschaften des Dokuments und Eigenschaften des Arbeitsblatts können Personen mit ADMIN-Rechten festlegen, was Anwender mit USER-Rechten in dem Dokument dürfen und was nicht. Anwendern mit USER-Rechten sind diese Sicherheit-Dialoge nicht zugänglich.

Hinweis: ADMIN-Rechte sind nur für lokale Dokumente relevant. Der Zugriff auf Server-Dokumente erfolgt immer mit USER-Rechten.

Sicherheitsfelder

Zugriffsrechte werden in einer Zugriffstabelle definiert, die im Zugriffsabschnitt des Skripts eingelesen wird. Diese Tabelle enthält verschiedene Sicherheitsfelder, in der Regel USERID und PASSWORD sowie das Feld ACCESS, welches die Berechtigungsstufe enthält. Alle Zugriffsabschnitt-Systemfelder werden für die Authentifizierung und die Autorisierung herangezogen. Nachfolgend finden Sie eine komplette Liste der Zugriffsabschnitt-Systemfelder .

Keines, alle oder ein Teil der Sicherheitsfelder können verwendet werden. Das Feld USERID dagegen ist nicht zwingend notwendig, die Zugriffskontrolle kann beispielsweise auch nur über die Lizenznummer (Feld SERIAL) erfolgen.

 

ACCESS Berechtigungsstufe des Anwenders.
USERID Benutzername des Anwenders. Beim Öffnen des Dokuments fragt QlikView den Benutzernamen ab und vergleicht die Eingabe mit den Werten dieses Feldes. Dieser Benutzername ist unabhängig vom Windows-Benutzernamen.
PASSWORD Passwort des Anwenders. Beim Öffnen des Dokuments fragt QlikView das Passwort ab und vergleicht die Eingabe mit den Werten dieses Feldes. Dieses Passwort ist unabhängig vom Windows-Passwort.
SERIAL Ein Feld, das eine der QlikView-Seriennummer entsprechende Nummer enthalten sollte.
Beispiel: 4900 2394 7113 7304
Beim Öffnen des Dokuments prüft QlikView die Lizenznummer des Benutzers und vergleicht sie mit den Werten in diesem Feld.
NTNAME Windows NT Domain User- bzw. Gruppenname.
Beim Öffnen des Dokuments prüft QlikView die Login-Daten des Betriebssystems und vergleicht sie mit den Werten dieses Feldes.
NTDOMAINSID Ein Feld, das einer der Windows NT Domain SID entsprechende Zeichenfolge enthalten sollte.
Beispiel: S-1-5-21-125976590-4672381061092489882
Beim Öffnen des Dokuments prüft QlikView die Login-Daten des Betriebssystems und vergleicht sie mit den Werten dieses Feldes.
NTSID Windows NT SID
Beispiel: S-15-21-125976590-467238106-1092489882-1378
Beim Öffnen des Dokuments prüft QlikView die Login-Daten des Betriebssystems und vergleicht sie mit den Werten dieses Feldes.
OMIT

Liste der Felder, die der Anwender nicht einsehen soll. Darf der Anwender alle Felder sehen, bleibt dieses Feld leer. Es können die üblichen Wildcards verwendet werden. Es kann mit der subfield-Funktion gearbeitet werden.

Hinweis: Sie sollten OMIT nicht auf Schlüsselfelder anwenden, da dadurch die Datenstruktur geändert wird. Dadurch können logisch isolierte Bereiche und Berechnungsinkonsistenzen entstehen.

Versucht ein Anwender ein geschütztes Dokument zu öffnen, vergleicht QlikView zunächst die QlikView-Lizenznummer mit den Werten im Feld SERIAL, ferner den Windows NT User- bzw. Gruppenname mit dem Feld NTNAME sowie die Windows NT Domain SID und Windows NT SID mit den Feldern NTDOMAINSID und NTSID. Danach fragt QlikView Benutzernamen und Passwort ab und vergleicht die Eingaben mit dem Inhalt der Felder USERID und PASSWORD.

Stimmen die geprüften Informationen und Eingaben mit denen in der Zugriffstabelle überein, wird das Dokument mit der dort angegebenen Berechtigungsstufe geöffnet. Anderenfalls wird QlikView den Zugriff auf das Dokument verweigern. Wurden Benutzername und/oder Passwort nicht korrekt eingegeben, wird die Abfrage wiederholt. Nach drei erfolglosen Versuchen ist der Anmeldevorgang komplett zu wiederholen.

Da die QlikView-Logik auch im Zugriffsabschnitt angewandt wird, können die Sicherheitsfelder ebenso gut in mehreren Tabellen gespeichert werden. Der Systemadministrator kann mit diesen Daten ein QlikView-Dokument anlegen, aus dem hervorgeht, wer auf welche Dokumente Zugriff hat. Auf diese Weise kann die Eingabe des Benutzernamens und des Passworts durch Mausklick auf den Wert des entsprechenden Feldes simuliert werden.

Beim Anmeldevorgang prüft QlikView zunächst Lizenznummer, Windows NT User- bzw. Gruppenname, Windows NT Domain SID und Windows NT SID, um Zugriff auf das Dokument zu gewähren. Wenn diese dafür ausreichen, öffnet QlikView das Dokument, ohne nach Benutzernamen und Passwort zu fragen.

Enthält die Tabelle nur einen Teil der Zugriffsfelder, werden auch nur diese Informationen geprüft bzw. abgefragt.

Alle Felder im Zugriffsabschnitt unter load oder select müssen in Großbuchstaben geschrieben werden. Feldnamen aus externen Datenquellen sollten bei der Ausführung des Skripts mit Hilfe der Funktion upper in Großbuchstaben konvertiert werden, bevor sie von Load- oder Select-Anweisungen eingelesen werden.

Upper - Skript- und Diagrammfunktion

Benutzername und Passwort, die der Anwender beim Öffnen des QlikView-Dokuments eingibt, sind jedoch unabhängig von Groß- oder Kleinschreibung.

Wildcards (*) stehen für alle existierenden Werte des Feldes, d. h. für einen beliebigen Wert in der Tabelle. Werden Wildcards in einem der sicherheitsrelevanten Felder (USERID, PASSWORD, NTNAME oder SERIAL) verwendet, interpretiert das Programm, dass sie für alle (auch für nicht explizit aufgeführte) Werte des Feldes stehen.

Hinweis: Wird beim Einlesen von Daten aus einer QVD-Datei der Befehl upper verwendet, beeinträchtigt dies die Ladezeit.
Hinweis: Zur Erstellung von Zugriffstabellen in inline-Befehlen verwenden Sie den Assistenten für Zugriffstabellen.
Hinweis: Wenn Sie Section Access aktiviert haben, können Sie die hier aufgeführten Systemfeldnamen von Section Access nicht als Feldnamen in Ihrem Datenmodell verwenden.

Example 1:  

Es wird nur die Lizenznummer geprüft. d. h. der Computer, auf dem diese Lizenz installiert ist, erhält die Berechtigungsstufe ADMIN. Alle anderen Anwender erhalten USER-Rechte. Der Stern (*) steht für alle Lizenznummern,

ACCESS SERIAL
ADMIN 4900 2394 7113 7304
USER *

Example 2:  

Der Administrator und der Server, auf dem QlikView als Batch-Job ausgeführt wird, erhalten ADMIN-Rechte. Alle anderen Anwender in der Domain erhalten USER-Rechte, wenn sie als Benutzernamen und als Passwort „USER“ eingeben.

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

Einschränkung der QlikView-Funktionalität

Die Steuerfunktionen unter Dokumenteigenschaften: Sicherheit und Eigenschaften des Arbeitsblatts: Sicherheit ermöglichen es, den Zugriff auf bestimmte Menüpunkte zu verbieten und Änderungen am Layout zu untersagen. Auf diese Weise lassen sich beispielsweise unerwünschte Layoutänderungen verhindern. Anwendern mit ADMIN-Rechten dagegen stehen sämtliche Befehle uneingeschränkt zur Verfügung.

Anwender mit USER-Zugriff können die Bereiche Sicherheit in den beiden genannten Dialogen nicht öffnen und sich somit die gesperrten Befehle nicht wieder verfügbar machen.

Einschränkung des Datenbestands

QlikView und QlikView-Server unterstützen eine Funktion, anhand der einige der Daen eines Dokuments für Anwender verborgen bleiben. Dies richtet sich dann nach dem Zugriffsabschnitt-Login.

Zunächst können durch das Systemfeld OMIT in der Zugriffstabelle bestimmte Felder (Spalten) vor den Anwendern verborgen werden.

Zudem können Datensätze (Zeilen) ausgeblendet werden, indem Sie die Section Access-Daten mit den echten Daten verknüpfen: Die Einschränkung der Feldwerte erfolgt dadurch, dass ein oder mehrere Feldnamen zugleich in section access and section application vorkommen. Bei jedem Login überträgt QlikView die im Zugriffsabschnitt aufgeführten Werte des Feldes auf das gleichnamige Feld im Datenabschnitt mit genau denselben Feldnamen (Feldnamen müssen groß geschrieben werden). Nach abgeschlossener Auswahl werden alle übrigen Werte des Feldes dauerhaft in QlikView vor dem Anwender verborgen.

Um dieses Verfahren nutzen zu können, muss die Option Eingrenzen der Daten aufgrund von Zugriffsbeschränkungen unter Dokumenteigenschaften: Öffnen ausgewählt sein. Soll das betreffende Dokument durch andere Methoden verteilt werden als über den QlikView Server (etwa per E-Mail), muss außerdem die Option Binäres Laden verhindern im selben Dialog aktiviert sein, um die Datensicherheit zu gewährleisten.

Hinweis: Alle Feldnamen, die für die Einschränkung des Datenbestands herangezogen werden sollen, müssen in Großbuchstaben geschrieben sein, da QlikView alle Daten im Zugriffsabschnitt automatisch in Großbuchstaben konvertiert.

Example:  

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;

Das Feld REDUCTION existiert nun in exakt gleicher Schreibweise im Zugriffs- und im Datenabschnitt (Alle Felder sind in Großbuchstaben geschrieben). Normalerweise werden diese beiden Abschnitte völlig separat verarbeitet. Ist jedoch die Option Eingrenzung der Daten aufgrund von Zugriffsbeschränkungen aktiviert, überträgt QlikView die Werte in den Datenabschnitt und blendet die übrigen Werte des Feldes aus.

Das Feld OMIT im Zugriffsabschnitt definiert, welche Felder ausgeblendet werden sollen.

Es ergibt sich folgende Tabelle:

Anwender A kann alle Felder sehen, aber nur die Datensätze, die in logischem Zusammenhang mit REDUCTION = 1 stehen.

Anwender B kann alle Felder bis auf NUM sehen, aber nur die Datensätze, die in logischem Zusammenhang mit REDUCTION = 2 stehen.

Anwender C kann alle Felder bis auf ALPHA sehen, aber nur die Datensätze, die in logischem Zusammenhang mit REDUCTION = 3 stehen.

Übertragung von Zugriffsbeschränkungen

Durch Laden von QlikView-Dateien mit Hilfe des binary-Befehls werden Zugriffsbeschränkungen auf das neue QlikView-Dokument übertragen. Eine Person mit ADMIN-Rechten für das neue Dokument kann dessen Zugriffskontrolle durch Einfügen eines neuen Zugriffsabschnitts im Skript ändern. Ein Anwender mit USER-Rechten kann das Skript ausführen und ändern (sofern ihm dies vom ADMIN-Anwender erlaubt wurde) und auf diese Weise etwa zusätzliche Daten einlesen. Anwender mit USER-Rechten können die Zugriffsrechte nicht ändern. Dadurch kann der Datenbankadministrator auch beim Einlesen von binär geladenen QlikView-Dokumenten die Zugriffskontrolle sicherstellen.

Verschlüsselung

Die Kommunikation zwischen dem QlikView-Server und dem QlikView Windows-Client ist verschlüsselt. Wird dagegen der AJAX-Client benutzt, ist die Kommunikation nicht verschlüsselt.

Grundsätzlich sind alle QlikView-Dateien so verschlüsselt, dass Sie mit anderen View- oder Debug-Programmen nicht eingelesen werden können.