Imagine you are working on a project where you want to allow users to only see data that’s applicable to them. A simple example of this is a restaurant chain. You might create a sales report where you want a General Manager to only see the data for their store but not others.
Here is a dashboard showing data for the whole company:
It’s based on a data table that looks like this:
Each row of data is a single item that was ordered from a single location on a given day.
Now, let’s imagine I manage just one of the five locations so I should only see data for the entity “Horseshoe Bay”. Using Tableau’s default permission capabilities doesn’t give me the capability to limit a user to seeing only part of the data.
What I’ve done instead is created a second table with a list of the entity names and the Tableau Online username of the applicable manager.
(Not sure where to get these usernames? Once somebody has created a Tableau Online or Tableau Server account, a Tableau Server Administrator can access a list of all active users.)
I’m going to create an inner join between the two tables where Entity name is shared.
Now I’ll add a data source filter based on the [Manager Username] field.
This will be a conditional filter and we only keep data where the [Manager Username] field matches the USERNAME() function. The USERNAME() function returns the username of the individual who is logged into Tableau Server or Online.
After applying that filter, you can see that I am limited to just seeing some of the data based on my username:
Need help setting up row level permissions for your own dashboard? Sign up for an office hour and we can help!