BusinessObjects Board

restricting data w.r.t to the user

I have some users when they login only data concerned with there depots should be displayed

I have some data in tables as below

username password Designation
A A1 manager
B B1 HR
C C1 sales
|	 |    

AND

username zones
A bangalore
A hubli
B chennai
C delhi
|	  |

when user A logins. he should see all the depots which are in his zone.
and in case the user is replaced by some other user say ‘D’ then the rights for A should directly change to ‘D’ w.r.t with the designation

–Note: I have tried Row level security in supervisor… but that will not help me.


kmk (BOB member since 2005-05-27)

Firslty, why does row level security not work for you!!

Other things you could do it apply a join between table1 and table2 in a view. Then when you expose this view to Designer, create a self join of sorts!!
eg. view.column = @Variable(‘BOUSER’)

Thus depedning on the user that logs in, security is applied on your view.

Or you could have the security table in designer and force a join!!

Hope this helps!! :smiley:


Anonymous (BOB member since 2002-06-06)

Thanx for your response
So what I understand from this is

In the query
view.column = @Variable(‘BOUSER’)

the view will be the table which i have shown below with the username and password

username password Designation
A A1 manager
B B1 HR
C C1 sales

but where should we write this query
“view.column = @Variable(‘BOUSER’)”

K.Murali krishnan


kmk (BOB member since 2005-05-27)

TABLE 1
username |password |Designation 
-------------|------------|----------- 
A |A1 |manager 
B |B1 |HR 
C |C1 |sales 
| | 
TABLE2
username |zones | 
-------------|-------------| 
A |bangalore| 
A |hubli | 
B |chennai | 
C |delhi | 
| | 
VIEW 
username |password |Designation|zone
-------------|------------|----------- |--------
A |A1 |manager | bangalore
A |A1 |manager | hubli
B |B1 |HR | chennai
C |C1 |sales | delhi
| | 

your view would also contain zone info. Basically your view would be a join between the two tables…

Then you can create a join - which is essentailly a self join which says
view.col = @Variable(‘BOUSER’)

Another option is, have both the tables on your universe and then join them as follows…

Table1.username = table2.username
and table1.username = @Variable(‘BOUSER’)

This way, the data in the table will get filtered according to the user that logs in!!

Hope this helps!!


Anonymous (BOB member since 2002-06-06)

Thanx this was really helping i still have doubt … then in this case should i include this column in every report of mine


kmk (BOB member since 2005-05-27)

Please see this topic:

This is a user conference presentation on alternatives for doing row-level security.


Steve Krandel :us: (BOB member since 2002-06-25)