OBIEE security boils down into 2 different types:
- Object level security
- Data level security
Each object in the RPD can be secured by user group to restrict access.
In this picture everyone has access to this presentation table. To restrict access you click on the tick to change it to a cross for everyone. You can then give access only to specific groups by changing the box to a tick for those groups.
Data Level Security
Data level security is also controlled by user group, filters are defined against user groups and these filters then restrict the data returned to each user by manipulating the WHERE clause in the SQL generated by the server.
For instance:
Here you can see the filters that are defined for the user group "Primary Org-Based Security". If we take one example:
When a user creates a query including the logical table Core."Dim - Opportunity" the OBIEE server will look up the physical column for the logical column Core."Dim - Opportunity".VIS_PR_BU_ID, and add a clause for this column to the WHERE clause of the SQL query generated. In the case above we are using a session variable called ORGANIZATION, this is generated at login by row-wise initialisation.
So we end up with this on the end of the SQL Query:
WHERE W_OPTY_D.VIS_PR_BU_ID IN ('1-A1233','1-D453G','1-98GT2')
And so the user will only see data from their organizations. This exact example is based on Analytics Apps 7.9.5 using Siebel as the source OLTP system. So the ORGANIZATION variable is initialised by getting all the user's orgs from the Siebel DB in a SQL statement; you may need to create something similar for your application yourself.


