Author: Thomas Dodds, Performance Architects
Running into a snag where permissions in Oracle Business Intelligence 12c (formerly known as Oracle Enterprise Edition or OBIEE) BI Roles were such that the use of the “Permissions” feature to restrict access to a particular presentation layer object is ineffective?
Use the “Hide object if” capability to solve the issue.
- Create an AD group that users can be assigned to; either in WebLogic (defaultAuthenticator) or in the system that the AD_Authenticator points to in WebLogic.Consult Oracle’s Product Documentation for specific steps: http://www.oracle.com/technetwork/middleware/bi-enterprise-edition/documentation/bi-ee-087853.html
- In “Enterprise Manager,” create an “Application Role;” in this example ‘ALLOW_RESTRICTED_OBJECT’ and member the AD group to this role.Consult Oracle’s Product Documentation for specific steps: http://www.oracle.com/technetwork/middleware/bi-enterprise-edition/documentation/bi-ee-087853.html
- Create a “Session Variable Initialization Block”The SQL statement is reading the list of the user’s BI Roles and is leveraging Oracle DUAL table and INSTR() Function. Highlighted in BLUE below.The INSTR() function will return an integer value representing the character location where a substring is found in the search string. IE: INSTR(‘Hello World!’,’World’,1,1) returns 7.
Wrap this INSTR() function in a case statement to return ‘SHOW’ if the integer returned is greater than zero (the text was found) or return ‘HIDE.’
Also create a Session Variable to hold the returned value; in this example ‘SHOW_HIDE_OBJECT’ and default its initialized value to ‘HIDE’. Highlighted in RED below.
Test the Initialization block. Note, the block will return the list of values for the user you are logged in to the RPD with.
- In the Presentation Layer, double-click object that you want to conditionally show or hide to open it. On the general tab, locate the ‘Hide object if’ property and click the expression editor icon. Highlighted in RED below.In the expression editor window, enter the formula to evaluate your variable value to a Boolean TRUE/FALSE. Highlighted in BLUE below.VALUEOF(NQ_SESSION.SHOW_HIDE_OBJECT) = ‘HIDE’
The property is designed to hide the object if the Boolean evaluation is TRUE.
- Test it out!
This property is available for both presentation columns and tables. If applied to a table, sub-tables and columns will also be affected. If you have any questions about what was discussed in this post, please email us at info@performancearchitects.com.