Exclude Entity Members in Database Security

Stefan Batalia
Stefan Batalia Customer
Fourth Anniversary 10 Comments 5 Likes Photogenic
edited April 2020 in Platform

Hello all,

how can we exclude a memeber from an Entity in a Database Security?
The "Exclude" button is "grey".

image

 

 

image

 
Kind Regards
Stefan Batalia

Answers

  • Dear Stefan Batalia,

     

    for Database Security Profiles only "positive" Selections are allowed.

     

    To get your case working you have to select the Members the user should be able to see.

     

    Exclude is not supported for that reasons.

     

    Hope it helps

     

    regards

     

    Alexander Kappes

  • Hello Alexander,

     

    "To get your case working you have to select the Members the user should be able to see".
    That is not really practicable.
    We have many user and in the Entität where we will exclude 1 member, we have also many members. 

    The next problem is, that everytime when we add a member to that Entity, than we must also change the Database Security.

     

    Regards
    Stefan Batalia

     

  • Dear Stefan Batalia,

     

    well many customers have the same situation.

     

    To get it work you have the following opportunities.

     

    For the reason only 1 member should be excluded create an aggregation to this dimension , where you just have to define which Elements should be authorized and which not (2 members inside).

     

    When you insert new members to the dimension you want to authorize just use ETL or something similar to mark them as active.

     

    Hope it helps

     

    regards

     

    Alexander Kappes

  • Paul Wyatt
    Paul Wyatt Customer
    100 Comments 100 Up Votes 100 Likes Second Anniversary
    edited March 2020

    Hi Stefan Batalia,

     

    Forgive me if I've misunderstood but I am making the following assumptions based on what you've written:

     

    1. You have a data category [entity], currently with four members [-,0,8,9].
    2. You want to load and display ALL records, regardless of category, at dataload.
    3. You want to exclude from view all records which are categorised [8 - Closed by finance] for specific users/profiles.
    4. You want to be able to see all records for specific users/profile holders.

     

    With the above assumptions, you can achieve all that you need by creating a parent group to include everything but the excluded member/members as required. 

     

    I do not know your level of BOARD understanding.  Also, I like to provide more complete answers which may help future community members.  for these reasons, I will illustrate the steps required to achieve what I think you're asking.  I do appreciate that you will probably know a number of these steps so please don't be offended 

     

    Using a database security filter and applying a parent entity - One of many methods.

     

    Overview and principle solution

    In principle, to apply a security filter on a dataset that does not have the required parent category, we must modify the existing hierarchy.  This is also what Alexander Kappes has outlined in his response; In fact, my response illustrates the steps required to achieve what Alexander summerised - I clearly had way more time to play with, on a Sunday!...I really, really need a life.  Anyway...

     

    Image 1 illustrates a hierarchy where [Record] is the primary dimension and [Record Status] is the categorisation you currently have.  [Record Status Group] is the parent entity and used to hide/show the relevant entities in database security.

     

     

    Image 1 - Hierarchy to group shown and hidden members:

    image

     

    Application

     

    STEP 1 - Firstly, create the [Record Status] entity - you will have already done this but I've included the step for continuity.  Image 2 shows the 3 principle entities and the members of the [Record Status] entity.  Note, by hiding the [Record Status Group], users would never see this 'helper' entity.

     

    Image 2 - Entities used within Hierarchy shown in Image 1 plus an extended number of members in the [Record Status] Entity to represent changes over successive dataloads.

    image

    image

     

    STEP 2 - Create a parent entity [Record Status Group] - Image 3 shows the members SHOW and HIDE

     

    Image 3 - Record Status Group parent entity members

    image

     

    STEP 3 - Create the Hierarchy as seen in Image 1 using the 'relationship editor'.

     

    STEP 4 - Amend dataload, adjusted to upload the [Record Status Group].  The process could be applying a CASE statement in your SQL routine, using BOARD ETL processes or a data table as seen in Image 4.

     

    Image 4 - Data table including the parent entity members mapped to easch record and record status.

    image

     

    STEP 5a - Application of [Record Status Group] for filtering out hidden members.

     

    Select a User or profile to apply the filtered selection to - Image 5 shows the steps to apply the selection to a profile.

     

     

    Image 5 - Applying the filtered selection in database security agailst a profile.  Note the filter symbol next to the Profile name.  This is the only indicator a developer has that a filter is being used.  The developer must investigate to establish what the entity and settings are.  There is an alternative approach outlined in STEP 5b.

    image

     

    STEP 6 - Construct a screen to use the filter. 

    Image 6 shows the same screen but for two different users; LiteP and Developer.  Note that for the litep user, the parent entity and the main category entity only show what is permitted - entity member 8 is missing (filtered) but no filtering is applied to the Developer's view.

     

    Image 6 - The same screen but for two users; LiteP (filtered) and Developer (Not filtered).

    image

     

    image

    STEP 5b - Custom Selection Script: Aternative Application of [Record Status Group] for filtering out hidden members.

     

    Step 5a is effective in applying a security filter but is hard to see what has been filtered without first opening the filter selection and scanning down it.  An alternative approach is to type in the security filter in the custom selection script area.  The syntax is: [INSTRUCTION] [ENTITY] [OPERATOR] [VALUES] or [Select] [Record Status Group] [=] [SHOW].  Image 7 shows where this script is entered and here is the BOARD manual entry relating to the 'Database security profile concepts'.

     

    Image 7 - Custom Selection Script

    image

     

     

    Stefan Batalia, I hope that this was what you were looking to achieve?  If it was not, please feel free to contact me and we can discuss the matter further.

     

    Regards,

     

    Paul Wyatt