Filter

Filter styr säkerhetsåtkomst till datavärden i en kub. Filter är den mest detaljerade formen av säkerhet som finns tillgänglig.

När du skapar ett filter tilldelar du en uppsättning begränsningar till särskilda kubceller eller ett intervall av celler. Du kan sedan tilldela filtret till användare eller grupper.

Din säkerhetsroll bestämmer om du kan skapa, tilldela, redigera, kopiera, ändra namn på eller ta bort filter:

  • Om du har rollen Applikationsansvarig kan du hantera alla filter för alla användare eller grupper. Filter påverkar inte dig.
  • Om du har rollen Databasuppdatering kan du hantera filter för de applikationer du har skapat.
  • Om du har rollen Databasansvarig kan du hantera filter i dina applikationer eller kuber.
  • Om du har rollen Databasåtkomst (standard), så har du läsbehörighet till datavärden i alla celler, om inte din åtkomst är begränsad av filter.

Skapa filter

Du kan skapa flera filter för en kub. Om du redigerar ett filter ärvs ändringar som görs av dess definition av alla användare av det filtret.

Se Styra åtkomst till databasceller med säkerhetsfilter.

  1. Gå till filterredigeraren.

    I Redwood-gränssnittet:

    1. På sidan Applikationer öppnar du applikationen och sedan databasen (kuben).
    2. Klicka på Anpassning och på Filter.

    I det klassiska webbgränssnittet:

    1. På sidan Applikationer expanderar du applikationen.
    2. Starta inspektion på menyn Åtgärder, till höger om kubnamnet.
    3. Välj fliken Filter.
  2. Klicka på Lägg till.
  3. Ange ett filternamn i textrutan Filternamn.
  4. I filterredigeraren klickar du på Lägg till.
  5. Under Åtkomst klickar du på och använder listrutan för att välja en åtkomstnivå.
    • Ingen: Inga data kan hämtas eller uppdateras.

    • Läsa: Data kan hämtas, men inte uppdateras.

    • Skriv: Data kan hämtas och uppdateras.

    • MetaRead: Metadata (dimensions- och medlemsnamn) kan hämtas och uppdateras.

      Åtkomstnivån MetaRead åsidosätter alla andra åtkomstnivåer. Ytterligare datafilter påtvingas i befintliga MetaRead-filter. Filtrering på medlemskombinationer (använda AND-relationer) används inte på MetaRead. MetaRead filtrerar varje medlem separat (med en OR-relation).

  6. Välj raden under Medlemsspecifikation och ange medlemsnamn. Klicka sedan på Skicka Bild på ikonen Skicka filter i Redwood..

    Du kan filtrera medlemmar separat eller filtrera medlemskombinationer. Ange dimensions- eller medlemsnamn, aliasnamn, medlemskombinationer, medlemsuppsättningar som definieras av funktioner, eller ersättningsvariabelnamn, som föregås av ett et-tecken (&). Avgränsa flera poster med kommatecken.

  7. Skapa flera rader för filtret om det behövs.

    Om filterrader överlappar eller är i konflikt med varandra används mer detaljerade kubområdesspecifikationer framför mindre detaljerade och mer toleranta åtkomsträttigheter tillämpas före mindre toleranta. Om du till exempel ger en användare Läsbehörighet till Faktisk och skrivbehörighet till Jan så har användaren skrivåtkomst till Jan Faktisk.

  8. Klicka på Validera för att kontrollera att filtret är giltigt.
  9. Klicka på Spara.

Vill du redigera ett filter i Redwood-gränssnittet, letar du upp fliken Filter genom att välja kuben och sedan välja sidan Anpassning. Sedan redigerar du filtret genom att klicka på filternamnet och göra ändringar i filterredigeraren. Vill du redigera en befintlig rad dubbelklickar du på den.

Vill du redigera ett filter i det klassiska webbgränssnittet går du till fliken Filter i Inspektion och redigerar filtret genom att klicka på filtrets namn och göra dina ändringar i filterredigeraren.

Du kan kopiera, ändra namn på eller ta bort ett filter genom att klicka på menyn Åtgärder till höger om filternamnet och välja ett alternativ.

När du har skapat filter tilldelar du dem till användare eller grupper.

Skapa effektiva dynamiska filter

Du kan skapa dynamiska filter baserat på externa källdata för att minska det antal filterdefinitioner som behövs.

I stället för att hantera en uppsättning hårdkodade dataåtkomstfilter för många användare kan du filtrera åtkomsten till kubceller från externa källdata, baserat på medlems- och användarnamn.
Du gör detta med syntaxen för definition av dynamiska filter, till exempel metoden @datasourceLookup och variablerna $LoginUser och $LoginGroup. Dina externa källdata är en csv-fil eller en relationstabell. För relationskälldata kan du ladda .csv-filen till en relationstabell.

Syntax för dynamiska filter

Använd syntax för dynamiska filter för att skapa flexibla filter som du kan tilldela till flera användare och grupper.

Filterrader kan innehålla följande element som en del av sin definition, utöver medlemsuttryck.

$loginuser

Den här variabeln lagrar värdet för den inloggade användaren vid exekvering. Den kan användas i kombination med metoden @datasourcelookup.

$logingroup

Den här variabeln lagrar värdet för alla grupper som den för tillfället inloggade användaren tillhör. Den inkluderar både direkta och indirekta grupper. När den används i kombination med metoden @datasourcelookup slås varje grupp upp individuellt mot datakällan.

@datasourcelookup

Den här metoden hämtar poster från en datakälla.

Syntax

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

Namnet på den externa datakälla som definieras i Essbase. För en datakälla på applikationsnivå ska applikationsnamnet och en punkt anges som prefix i namnet.

columnName

Namnet på den datakällkolumn som ska genomsökas efter ett visst columnValue.

columnValue

Det värde som du vill söka efter i columnName.

returnColumnName

Namnet på den datakällkolumn som en lista över värden ska returneras från.

Beskrivning

Ett @datasourcelookup-anrop motsvarar följande SQL-fråga:

select returnColumnName from dataSourceName where columnName=columnValue

@datasourcelookup slår upp den angivna datakällan och söker efter poster där columnName innehåller columnValue. Om du för columnValue anger $loginuser så söker den här metoden efter poster där columnName innehåller den inloggade användarens namn.

Essbase bildar filterdefinitionen genom att kombinera listelementen som en kommaavgränsad sträng. Om någon post innehåller specialtecken, blanksteg eller endast siffror omsluts den av citattecken.

Exempel

Placera parametrarna inom citattecken.

Följande anrop slår upp en global datakälla och returnerar en lista över lagernamn där Mary är lageransvarig.

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

Följande anrop slår upp en datakälla på applikationsnivå och returnerar en lista över lagernamn där den inloggade användaren är lageransvarig.

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

Följande anrop slår upp en datakälla på applikationsnivå och returnerar en lista över lagernamn där lageravdelningen matchar någon av grupperna som den inloggade användaren tillhör.

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

Om den inloggade användaren tillhör 3 grupper returnerar metoden @datasourcelookup ovan alla matchande kolumnvärden för varje grupp.

Arbetsflöde för att skapa dynamiska filter

Använd följande allmänna arbetsflöde när du vill skapa dynamiska filter.

Det här arbetsflödet för dynamiska filter förutsätter att du redan har en kub och behörighetstilldelade användare och grupper.

  1. Identifiera en källa till data, som kan vara en fil eller en relationskälla.
  2. Definiera anslutningen och datakällan i Essbase, antingen globalt eller på applikationsnivå.
  3. Skapa filter på kubnivå:
    • I Redwood-gränssnittet går du till kuben och väljer Anpassning och sedan Filter.
    • I det klassiska webbgränssnittet använder du sektionen Filter i databasgranskningen.

  4. Definiera filterrader för varje filter, genom att använda syntaxen för dynamiska filter med variabeln $loginuser, variabeln $logingroup och metoden @datasourcelookup efter behov.
  5. Tilldela filtren till användare eller grupper.
  6. Om du har tilldelat filtret till en grupp tilldelar du gruppen till den applikation som ska filtreras.
    • I Redwood-gränssnittet går du till applikationen och väljer Anpassning och sedan Behörigheter.
    • I det klassiska webbgränssnittet använder du sektionen Behörigheter i applikationsinspektionen.

Exempel på ett dynamiskt filter

Följande dynamiska filter fungerar med kuben benämnd Efficient.UserFilters, som finns i galleriet som en exempelmall.


Dynamiskt filter med tre rader som ger den inloggade användaren metaread-åtkomst.

Om du vill lära dig hur du skapar och använder det här dynamiska filtret ska du ladda ned arbetsboksmallen, Efficient_Filters.xlsx, från sektionen Tekniskt i galleriet och följa README-instruktionerna i arbetsboken. Galleriet är tillgängligt i sektionen Filer i webbgränssnittet för Essbase.