I am wondering if BO reports (WebI) can talk to a stored procedure or not ?
I am thinking of imlementing user access to a report in this way :
when a user clicks to open a report…the report will call a stored procedure…the stored procedure will have code to figure out if that user has access to a report or not ?
For this i wanted to know if a report can talk to a stored procs or not ?
when a user tries to open a Business objects report created in WebI…it will run a stored procedure which has a security code to determine if a user has access to a reports or not.
If the stored procedure returns yes then access to report if no then no access to report.
Can we do this for all BO reports…so that we can figure out the report access using stores procedure instead of using the user roles in CMC.
I am responsible for the reports and universes related to our department. Our company has a centralized BO Admin team which take care of all securities.
I am in charge of defining the securities ( eg: groups, user, access) and the BO admin team implements that.
Everytime there is a new user, access/no access to a report/universe I need to ask the BO adin team to make changes.
So my department is thinking like if we can handle the access/no access thing in report relvel so that we dont have to maintain this access issue in CMC and ask them for every security changes.
This is just a curiosity…is it possible when a user opens a report a stored procedure will be called to check if the user has access/ no access to a report ?
If user has access stored procs will return yes…and he will access the report…otherwise it returns NO…that means he can not acces the report…
I would advice instead of giving access to each user, divide users in groups and setup security based on groups.
What else you can do is
–Maintain a list of report with user-id who has access in db table
–add a condition\rlr on report to check document name with db table, in case there is no match it will return zero data.
I am thinking of having a filter created in universe level.
This filter will be based on a oracle function. Function ( get user id) will define if a user/group has access to a report or not based on his/her user id.
Will use this function with @variable(‘bo user’) in BO to validate user access.
This filter will be used in all BO reports.
When a user runs a report based on role defined in filter will have access/ no access to the report. If has access report will run and display data…if not report will display no data.
May be we can create tables for user/role, report cluster id, and program (we have reports grouped on different programs).
Logic in the function will basically be based on these tables.
My concerns:
Do you think using filter for each reports ( we have more than 100 reports) makes sense.
If our main purpose of doing this new security is maintaining security in database level and not bother corporate BO admin for every change…
but still looks like if we want to add a new report in BO…they still need to assign a folder and create security for this report and give access/ no access to users based on profile.
All users will be able to see all reports if folder level security is not implemented in CMC.
Clicking each and every report and see if they can run report and get data is not a feasible solution I guess… so any way we will have to ask for help from corporate BO admin team to maintain new report and assign users/groups/roles.
If you guys have any good suggestions…new ideas plz speak out…
Best option would as I mentioned in earlier post is to discuss with clients and define groups and folders. Different groups should be mapped to different folder based on what they should see and what should not.
Creating user groups and folder will be one time effort. Groups will be given rights on specific folders.
Going forward you just need to add users in particular group and publish report in corresponding folder.
Once you publish report user group will automatically get access and you do not need to disturb admins.