Filter

Filter steuern den Sicherheitszugriff auf Datenwerte in einem Cube. Filter stellen die Form des Sicherheitszugriffs mit der größten Granularität dar.

Wenn Sie einen Filter erstellen, legen Sie eine Reihe von Einschränkungen für bestimmte Zellen des Cubes oder für einen Zellbereich fest. Danach können Sie den Filter Benutzern oder Gruppen zuweisen.

Ihre eigene Sicherheitsrolle bestimmt, ob Sie Filter anlegen, zuordnen, bearbeiten, kopieren, umbenennen oder löschen können:

  • Wenn Sie die Rolle "Anwendungsmanager" haben, können Sie alle Filter für alle Benutzer oder Gruppen verwalten. Filter betreffen Sie nicht.
  • Wenn Sie die Rolle "Datenbankaktualisierung" haben, können Sie Filter für die von Ihnen erstellten Anwendungen verwalten.
  • Wenn Sie die Rolle "Datenbankmanager" haben, können Sie Filter innerhalb Ihrer Anwendungen oder Cubes verwalten.
  • Wenn Sie die Rolle "Datenbankzugriff" (Standard) haben, haben Sie Lesezugriff auf Datenwerte in allen Zellen, es sei denn, Ihr Zugriff wird durch Filter weiter eingeschränkt.

Filter erstellen

Sie können mehrere Filter für einen Cube erstellen. Wenn Sie einen Filter bearbeiten, werden Änderungen an seiner Definition von allen Benutzern des Filters geerbt.

Siehe Zugriff auf Datenbankzellen mit Sicherheitsfiltern kontrollieren.

  1. Navigieren Sie zum Filtereditor.

    Führen Sie in der Redwood-Oberfläche folgende Schritte aus:

    1. Öffnen Sie auf der Seite "Anwendungen" die Anwendung und dann die Datenbank (den Cube).
    2. Klicken Sie auf Anpassung und dann auf Filter.

    Führen Sie in der klassischen Weboberfläche folgende Schritte aus:

    1. Blenden Sie auf der Seite "Anwendungen" die Anwendung ein.
    2. Starten Sie über das Menü "Aktionen" rechts neben dem Cube-Namen den Inspektor.
    3. Wählen Sie das Register Filter aus.
  2. Klicken Sie auf Hinzufügen.
  3. Geben Sie einen Filternamen in das Textfeld Filtername ein.
  4. Klicken Sie im Filtereditor auf Hinzufügen.
  5. Klicken Sie unter Zugriff, und wählen Sie im Dropdown-Menü eine Zugriffsebene aus.
    • Keine: Es können keine Daten abgerufen oder aktualisiert werden.

    • Lesen: Daten können abgerufen, jedoch nicht aktualisiert werden.

    • Schreiben: Daten können abgerufen und aktualisiert werden.

    • MetaRead: Metadaten (Dimensions- und Elementnamen) können abgerufen und aktualisiert werden.

      Die Zugriffsebene "MetaRead" setzt alle anderen Zugriffsebenen außer Kraft. Innerhalb vorhandener MetaRead-Filter werden weitere Datenfilter erzwungen. Die Filterung von Elementkombinationen (mit UND-Beziehungen) wird nicht auf MetaRead angewendet. Mit MetaRead wird jedes Element separat gefiltert (mit ODER-Beziehung).

  6. Wählen Sie die Zeile unter Elementspezifikation aus, geben Sie Elementnamen ein, und klicken Sie dann auf Weiterleiten Abbildung des Symbols zum Weiterleiten eines Filters in Redwood..

    Sie können einzelne Elemente oder Elementkombinationen filtern. Geben Sie Dimensions- oder Elementnamen, Aliasnamen, Elementkombinationen, durch Funktionen definierte Elementmengen oder Namen von Substitutionsvariablen an, denen ein Et-Zeichen (&) vorangestellt ist. Trennen Sie mehrere Einträge durch Kommas.

  7. Legen Sie ggf. zusätzliche Zeilen für den Filter an.

    Wenn Filterzeilen überlappen oder widersprüchlich sind, stehen detailliertere Cube-Bereichsspezifikationen über weniger detaillierten, und weiter reichende Zugriffsrechte über weniger weit reichenden. Beispiel: Wenn Sie einem Benutzer Lesezugriff auf "Ist" und Schreibzugriff auf "Jan" erteilen, erhält der Benutzer Schreibzugriff auf "Jan Ist".

  8. Klicken Sie auf Validieren, um sicherzustellen, dass der Filter gültig ist.
  9. Klicken Sie auf Speichern.

Um einen Filter in der Redwood-Oberfläche zu bearbeiten, gehen Sie zur Registerkarte "Filter", indem Sie den Cube und dann die Seite "Anpassung" auswählen. Bearbeiten Sie den Filter dann, indem Sie auf den Filternamen klicken und die gewünschten Änderungen im Filtereditor vornehmen. Um eine vorhandene Zeile zu bearbeiten, doppelklicken Sie auf diese Zeile.

Um einen Filter in der klassischen Weboberfläche zu bearbeiten, gehen Sie zur Registerkarte "Filter" im Inspektor, und bearbeiten Sie den Filter, indem Sie auf den Filternamen klicken und die gewünschten Änderungen im Filtereditor vornehmen.

Sie können einen Filter kopieren, umbenennen oder löschen, indem Sie rechts neben dem Filternamen auf das Menü "Aktionen " klicken und eine Option auswählen.

Nachdem Sie Filter erstellt haben, können Sie sie Benutzern oder Gruppen zuweisen.

Effiziente dynamische Filter erstellen

Sie können dynamische Filter basierend auf externen Quelldaten erstellen, um die Anzahl der erforderlichen Filterdefinitionen zu reduzieren.

Anstatt eine Reihe hartcodierter Datenzugriffsfilter für viele Benutzer zu verwalten, können Sie den Zugriff auf Cube-Zellen von externen Quelldaten basierend auf Element- und Benutzernamen filtern.
Dazu nutzen Sie Definitionssyntax für dynamische Filter, einschließlich der Methode @datasourceLookup und der Variablen $LoginUser und $LoginGroup. Die externen Quelldaten liegen als CSV-Datei oder relationale Tabelle vor. Bei relationalen Quelldaten können Sie die CSV-Datei in eine relationale Tabelle laden.

Syntax für dynamische Filter

Verwenden Sie Syntax für dynamische Filter, um flexible Filter zu erstellen, die Sie mehreren Benutzern und Gruppen zuweisen können.

Filterzeilen können folgende Elemente als Teil der Definition zusammen mit Elementausdrücken enthalten.

$loginuser

Diese Variable speichert den Wert des derzeit angemeldeten Benutzers zur Laufzeit. Sie kann zusammen mit der Methode @datasourcelookup verwendet werden.

$logingroup

Diese Variable speichert den Wert aller Gruppen, zu denen der aktuell angemeldete Benutzer gehört. Dazu gehören sowohl direkte als auch indirekte Gruppen. Bei Kombination mit der Methode @datasourcelookup wird jede Gruppe einzeln in der Datenquelle gesucht.

@datasourcelookup

Diese Methode ruft Datensätze aus einer Datenquelle ab.

Syntax

@datasourcelookup (dataSourceName, columnName, columnValue, returnColumnName)
Parameter Beschreibung
dataSourceName

Der Name der externen Datenquelle, die in Essbase definiert ist. Stellen Sie bei einer Datenquelle auf Anwendungsebene den Anwendungsnamen und einen Punkt als Präfix voran.

columnName

Der Name der Datenquellenspalte, in der nach einem angegebenen columnValue gesucht werden soll.

columnValue

Der Wert, nach dem in columnName gesucht werden soll.

returnColumnName

Der Name der Datenquellenspalte, aus der eine Liste mit Werten zurückgegeben werden soll.

Beschreibung

Ein @datasourcelookup-Aufruf entspricht der folgenden SQL-Abfrage:

select returnColumnName from dataSourceName where columnName=columnValue

@datasourcelookup sucht die angegebene Datenquelle und gibt Datensätze zurück, bei denen columnName columnValue enthält. Wenn Sie $loginuser für columnValue angeben, werden Datensätze gesucht, bei denen columnName den Namen des derzeit angemeldeten Benutzers enthält.

Essbase bildet die Filterdefinitionszeile, indem die Listenelemente in einer durch Komma getrennten Zeichenfolge kombiniert werden. Wenn ein Datensatz Sonderzeichen, Leerzeichen oder nur Zahlen enthält, wird er in Anführungszeichen gesetzt.

Beispiele

Schließen Sie die Parameter in Anführungszeichen ein.

Der folgende Aufruf ruft eine globale Datenquelle ab und gibt eine Liste mit Geschäftsnamen zurück, bei denen Mary Store-Manager ist.

@datasourceLookup("StoreManagersDS","STOREMANAGER","Mary","STORE")

Der folgende Aufruf ruft eine Datenquelle auf Anwendungsebene ab und gibt eine Liste mit Geschäftsnamen zurück, bei denen der derzeit angemeldete Benutzer Store-Manager ist.

@datasourceLookup("Sample.StoreManagersDS","STOREMANAGER","$loginuser","STORE")

Der folgende Aufruf ruft eine Datenquelle auf Anwendungsebene ab und gibt eine Liste mit Geschäftsnamen zurück, bei denen die Geschäftsabteilung einer der Gruppen entspricht, zu denen der angemeldete Benutzer gehört.

@datasourceLookup("Sample.StoreManagersDS","STORE_DEPARTMENT","$logingroup","STORE")

Wenn der angemeldete Benutzer zu 3 Gruppen gehört, gibt die oben genannte @datasourcelookup-Methode alle übereinstimmenden Spaltenwerte für jede Gruppe zurück.

Workflow zum Erstellen von dynamischen Filtern

Mit dem folgenden allgemeinen Workflow können Sie dynamische Filter erstellen.

Beim diesem Workflow für dynamische Filter wird vorausgesetzt, dass Sie bereits über einen Cube verfügen und Benutzern und Gruppen Berechtigungen zugewiesen haben.

  1. Identifizieren Sie eine Datenquelle (ob Datei oder relationale Quelle).
  2. Definieren Sie die Verbindung und die Datenquelle in Essbase (entweder global oder auf Anwendungsebene).
  3. Erstellen Sie Filter auf Cube-Ebene:
    • Navigieren Sie in der Redwood-Oberfläche zum Cube, und wählen Sie Anpassung gefolgt von Filter aus.
    • Verwenden Sie in der klassischen Weboberfläche den Abschnitt Filter des Datenbankinspektors.

  4. Definieren Sie Filterzeilen für jeden Filter mit der Syntax für dynamische Filter so, dass die Variable $loginuser, die Variable $logingroup und die Methode @datasourcelookup nach Bedarf verwendet werden.
  5. Weisen Sie die Filter Benutzern oder Gruppen zu.
  6. Wenn Sie den Filter einer Gruppe zugewiesen haben, weisen Sie die Gruppe der zu filternden Anwendung zu:
    • Navigieren Sie in der Redwood-Oberfläche zur Anwendung, und wählen Sie Anpassung gefolgt von Berechtigungen aus.
    • Verwenden Sie in der klassischen Weboberfläche den Abschnitt Berechtigungen des Anwendungsinspektors.

Beispiel für einen dynamischen Filter

Der folgende dynamische Filter funktioniert mit dem Cube "Efficient.UserFilters", der in der Galerie als Beispielvorlage verfügbar ist.


Dynamischer Filter mit drei Zeilen, der dem angemeldeten Benutzer MetaRead-Zugriff erteilt.

Um zu erfahren, wie Sie diesen dynamischen Filter erstellen und anwenden, laden Sie die Arbeitsmappenvorlage Efficient_Filters.xlsx vom Abschnitt "Technisch" der Galerie herunter, und befolgen Sie die README-Anweisungen in der Arbeitsmappe. Sie finden die Galerie in der Essbase-Weboberfläche im Abschnitt Dateien.