Setting Up Row Level Permissions in Tableau

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:

63-1.png

It’s based on a data table that looks like this:

63-2.png

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.

63-3.png

(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.

63-4.png

Now I’ll add a data source filter based on the [Manager Username] field.

63-5.png

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.

63-6.png

After applying that filter, you can see that I am limited to just seeing some of the data based on my username:

63-7.png

Need help setting up row level permissions for your own dashboard? Sign up for an office hour and we can help!