Data Level Security is basically securing
the data. Users belonging to particular group should see a certain set a data
whereas users outside that groups shouldn’t see that data. Example: Users
belonging to Asia group should see only the data for Asia region whereas users
belonging to US region should see data for US region.
Data-level security controls the
visibility of data (content rendered in subject areas, dashboards, Oracle BI
Answers, and so on) based on the user's association to data in the
transactional system.
This controls the type and amount of data
that you can see in a report. When multiple users run the same report, the
results that are returned to each depend on their access rights and roles in
the organization. For example, a sales vice president sees results for all regions,
while a sales representative for a particular region sees only data for that
region.
Example
Here we will look at creating and using a
session variable and how to implement row level security. This is mainly used
to restrict data based on the user rights. The row level security will be
useful in situations like:
1.
Allowing user to see data that she has access to.
2.
Showing data based on current date.
3.
A sales manager can be shown data in his region only. A CEO can be shown data
for all regions.
In this post we look at showing units
ordered in the current month. We use a security filter to filter data for the
current month.
Steps:
1. The first step is to
create the session variable for the current month. To do so
a.
In the Administration window, click on Action - > New -> Session ->
Variable.Give CURRENT_MONTH as the name of the variable. Click on 'New' near
the initialization block.
b.
Give CURRENT_MONTH_INIT as the name of the initialization block. Click on Edit
Data Source.
c.
A new window opens. Select the connection pool by using the browse button.
d.
Use database as the data source type.
e.Type
in the following query:" select month(curdate()); " in the default
initialization string.
f.
Click Ok to close the dialog.
g.
In the Session variable initialization block, click on edit data target.
h.
select the CURRENT_MONTH variable. Click on Ok.
i.
Click on ok to create the session variable.
2. The next step is to use this session variable to filter the result for this month.
a.In
the Administration tool. click on Manage -> Security.
b.Create
a new User called MonthlyUser.
c.
Create a new group called MonthlyUserGroup. Assign MonthlyUser to this group.
d.Open
the MonthlyUserGroup dialog and click on Permissions.
e.Click
the tab that says filters. Click on 'Add'
f.In
the name of the filter select the name of the table that you want to apply the
filter on.
g.Click
on the ellipsis in the business model filter column.Apply the filter
h. The group is now created.
h. The group is now created.
3. Login to BI answers
using the MonthlyUser user. Select the columns from the store database. view
results. You will notice that the results show data for the current month
only.If you login by a user from the administrators group, data for all months
will be visible.
No comments:
Post a Comment