Filtre

Filtre riadia zabezpečenie prístupu k hodnotám dát v kocke. Filtre predstavujú najpodrobnejšiu formu zabezpečenia, ktorá je k dispozícii.

Keď vytvárate filter, určujete množinu obmedzení konkrétnych buniek kocky alebo rozsahu buniek. Potom môžete filter priradiť k používateľom alebo skupinám.

Vaša vlastná rola zabezpečenia určuje, či môžete filtre vytvárať, priraďovať, upravovať, kopírovať, premenovávať alebo odstraňovať.

  • Ak máte rolu správcu aplikácie, môžete spravovať ľubovoľný filter pre akéhokoľvek používateľa alebo skupinu. Na vás sa filtre nevzťahujú.
  • Ak máte rolu aktualizácie databázy, môžete spravovať filtre pre aplikácie, ktoré ste vytvorili.
  • Ak máte rolu správcu databázy, môžete spravovať filtre v rámci vašich aplikácií alebo kociek.
  • Ak máte (predvolenú) rolu prístupu k databáze, máte prístup na čítanie k hodnotám dát vo všetkých bunkách, pokiaľ váš prístup nie je ďalej obmedzený filtrami.

Vytváranie filtrov

Pre kocku môžete vytvoriť viacero filtrov. Ak upravujete filter, úpravy uskutočnené v jeho definícii zdedia všetci používatelia tohto filtra.

Pozrite si časť Kontrola prístupu k bunkám databázy pomocou filtrov zabezpečenia.

  1. Prejdite do editora filtrov.

    V rozhraní Redwood:

    1. Na stránke Aplikácie otvorte aplikáciu a potom otvorte databázu (kocku).
    2. Kliknite na položku Prispôsobenie a potom kliknite na položku Filtre.

    V klasickom webovom rozhraní:

    1. Na stránke Aplikácie rozbaľte aplikáciu.
    2. V ponuke Akcie napravo od názvu kocky spustite inšpektora.
    3. Vyberte kartu Filtre.
  2. Kliknite na tlačidlo Pridať.
  3. Zadajte názov filtra do textového poľa Názov filtra.
  4. V editore filtrov kliknite na tlačidlo Pridať.
  5. V časti Prístup kliknutím otvorte rozbaľovaciu ponuku a vyberte úroveň prístupu.
    • Žiadne: nemožno vyhľadať ani aktualizovať žiadne dáta.

    • Čítanie: dáta možno vyhľadať, ale nie aktualizovať.

    • Zápis: dáta možno vyhľadať a aktualizovať.

    • MetaRead: metadáta (názvy dimenzií a členov) možno vyhľadať a aktualizovať.

      Úroveň prístupu MetaRead prepíše všetky ostatné úrovne prístupu. Ďalšie dátové filtre sa vynútia v rámci existujúcich filtrov MetaRead. Na MetaRead sa nevzťahuje filtrovanie kombinácií členov (pomocou vzťahov AND). MetaRead filtruje každý člen samostatne (pomocou vzťahu OR).

  6. Vyberte riadok v sekcii Špecifikácia člena, zadajte názvy členov a potom kliknite na tlačidlo Odoslať Obrázok ikony odoslania filtra Redwood..

    Členy môžete filtrovať samostatne alebo môžete filtrovať kombinácie členov. Zadajte názvy dimenzií alebo členov, názvy aliasov, kombinácie členov, množiny členov definované funkciami alebo názvy substitučných premenných, pred ktorými je uvedený ampersand (&). Viaceré záznamy oddeľujte čiarkami.

  7. Podľa potreby vytvorte ďalšie riadky pre filter.

    Ak sa riadky filtra prekrývajú alebo sú v konflikte, použijú sa detailnejšie špecifikácie oblasti kocky namiesto menšieho počtu detailov a platia vyššie prístupové práva namiesto nižšej úrovne prístupu. Ak napríklad používateľovi poskytnete prístup na čítane pre aktuálny mesiac a prístup na zápis pre január, používateľ bude mať prístup na zápis pre január aktuálneho roka.

  8. Ak sa chcete presvedčiť, či je filter platný, kliknite na položku Overiť.
  9. Kliknite na tlačidlo Uložiť.

Ak chcete upraviť filter v rozhraní Redwood, vyhľadajte kartu Filtre tak, že vyberiete kocku a potom vyberiete stránku Prispôsobenie. Potom upravte filter tak, že kliknete na názov filtra a vykonáte zmeny v editore filtrov. Ak chcete upraviť existujúci riadok, dvakrát kliknite na príslušný riadok.

Ak chcete upraviť filter v klasickom webovom rozhraní, v inšpektorovi prejdite na kartu Filtre a upravte filter tak, že kliknete na názov filtra a vykonáte zmeny v editore filtrov.

Filter môžete kopírovať, premenovať alebo odstrániť tak, že kliknete na ponuku Akcie napravo od názvu filtra a vyberiete príslušnú voľbu.

Keď vytvoríte filtre, priraďte ich k používateľom alebo skupinám.

Vytváranie účinných dynamických filtrov

Môžete vytvoriť dynamické filtre založené na externých dátových zdrojoch na zníženie počtu potrebných definícií filtrov.

Namiesto spravovania množiny pevne kódovaných filtrov prístupu k dátam pre množstvo používateľov môžete filtrovať prístup k bunkám kocky z externého dátového zdroja na základe názvov členov a mien používateľov.
Používa sa na to syntax definície dynamických filtrov vrátane metódy @datasourceLookup a premenných $LoginUser a $LoginGroup. Externý dátový zdroj je súbor .csv alebo relačná tabuľka. Pre relačný dátový zdroj môžete načítať súbor .csv do relačnej tabuľky.

Syntax dynamického filtra

Syntax dynamického filtra slúži na vytváranie flexibilných filtrov, ktoré možno priraďovať k viacerým používateľom a skupinám.

Riadky filtra môžu ako súčasť definície spolu s výrazmi členov obsahovať nasledujúce prvky.

$loginuser

Táto premenná uchováva hodnotu aktuálneho prihláseného používateľa v runtime. Možno ju použiť v spojení s metódou @datasourcelookup.

$logingroup

Táto premenná ukladá hodnotu všetkých skupín, do ktorých patrí aktuálne prihlásený používateľ. Zahŕňa priame aj nepriame skupiny. Pri použití v spojení s metódou @datasourcelookup sa každá skupina jednotlivo vyhľadáva v dátovom zdroji.

@datasourcelookup

Táto metóda vyvoláva záznamy z dátového zdroja.

Syntax

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

Názov externého dátového zdroja definovaného v Essbase. V prípade názvu dátového zdroja na úrovni aplikácie použite ako prefix názov aplikácie a bodku.

columnName

Názov stĺpca dátového zdroja, v ktorom sa má vyhľadávať daný parameter columnValue.

columnValue

Hodnota, ktorá sa má vyhľadávať v stĺpci columnName.

returnColumnName

Názov stĺpca dátového zdroja, z ktorého sa má vrátiť zoznam hodnôt.

Popis

Volanie metódou @datasourcelookup je rovnocenné nasledujúcemu dopytu SQL:

select returnColumnName from dataSourceName where columnName=columnValue

Metóda @datasourcelookup prehľadá daný dátový zdroj a vyhľadá záznamy, v ktorých columnName obsahuje columnValue. Ak zadáte hodnotu columnValue ako $loginuser, táto metóda vyhľadá záznamy, v ktorých columnName obsahuje meno momentálne prihláseného používateľa.

Essbase vytvorí riadok s definíciou filtra skombinovaním prvkov zo zoznamu do reťazca oddeleného čiarkami. Ak nejaký záznam obsahuje špeciálne znaky, medzery alebo len čísla, budú ohraničené úvodzovkami.

Príklady

Ohraničte parametre úvodzovkami.

Nasledujúce volanie prehľadá globálny dátový zdroj a vráti zoznam názvov obchodov, v ktorých je Mary vedúcou obchodu.

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

Nasledujúce volanie prehľadá dátový zdroj na úrovni aplikácie a vráti zoznam názvov obchodov, v ktorých je aktuálne prihlásený používateľ vedúcim obchodu.

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

Nasledujúce volanie prehľadá dátový zdroj na úrovni aplikácie a vráti zoznam názvov obchodov, v ktorých oddelenie obchodu zodpovedá ktorejkoľvek zo skupín, do ktorých patrí prihlásený používateľ.

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

Ak prihlásený používateľ patrí do 3 skupín, uvedená metóda @datasourcelookup vráti všetky zhodné hodnoty stĺpcov pre každú skupinu.

Tok činností pri vytváraní dynamických filtrov

Nasledujúci všeobecný tok činností použite na vytváranie dynamických filtrov.

Tento tok činností dynamických filtrov predpokladá, že už máte kocku a poskytovaných používateľov a skupiny.

  1. Identifikujte zdroj dát, či už súbor, alebo relačný zdroj.
  2. Definujte pripojenie a dátový zdroj v Essbase globálne alebo na úrovni aplikácie.
  3. Vytvorte filtre na úrovni kocky:
    • V rozhraní Redwood prejdite na kocku, vyberte položku Prispôsobenie a potom vyberte položku Filtre.
    • V klasickom webovom rozhraní použite sekciu Filtre v inšpektorovi databázy.

  4. Definujte riadky filtra pre každý filter pomocou syntaxe dynamického filtra podľa potreby s použitím premennej $loginuser, premennej $logingroup a metódy @datasourcelookup.
  5. Priraďte filtre k používateľom alebo skupinám.
  6. Ak ste filter priradili skupine, priraďte skupinu, ktorá sa má filtrovať, k aplikácii:
    • V rozhraní Redwood prejdite na aplikáciu, vyberte položku Prispôsobenie a potom vyberte položku Povolenia.
    • V klasickom webovom rozhraní použite sekciu Povolenia v inšpektorovi aplikácie.

Príklad dynamického filtra

Nasledujúci dynamický filter možno použiť s kockou s názvom Efficient.UserFilters, ktorá je k dispozícii v galérii ako vzorová šablóna.


Dynamický filter s tromi riadkami, ktorý dáva prihlásenému používateľovi prístup MetaRead.

Ak chcete zistiť, ako vytvoriť a použiť tento dynamický filter, stiahnite si šablónu zošita Efficient_Filters.xlsx zo sekcie Technical v galérii a postupujte podľa pokynov README v zošite. Galéria je k dispozícii v sekcii Súbory webového rozhrania Essbase.