2 Replies Latest reply on Aug 14, 2018 12:01 PM by Chuck Czarnik

    Row Level Security, Cross Data Source Filters and Odd Quick Filter Behavior Displaying Relevant Values

    Chuck Czarnik

      Hi All, this one is a head scratcher.  Background:  Enterprise dashboard being delivered to large #'s of users.  Row level security is a requirement.  Millions of rows of data, thousands of users.  For performance we are using TDE's, with a security TDE containing user entitlement information, and a series of separate fact TDE's containing analytic data.  The primary dimension of interest (in the case below, Region) is driven by a quick filter from the security data source, and is defined as a cross data source filter against the fact data source.  We have replicated this issue in 10.4.6 and 2018.1.1.  The attached TWBX is an exact replica of the problem using Superstore with some mocked data. (2018.1.1)


      Scenario:  We need the quick filters to display only relevant values.  This is very important to us for security purposes.



      Above you see Jill Johnson has access to Central and West Regions.  Sales Person is set to show only relevant values.  This is the expected list.


      Examining the region filter dialog, you see that "select from list" is chosen and both options are selected.:




      To create the issue:  Toggle the "All" on the Quick Filter twice.  Effectively clearing all, and then selecting all:




      Notice the Sales Person list is longer.  It represents the universe of choices in the Fact data source, irrespective of the row level security that should filter through the cross data source filter (look at the difference in the size of the scroll bar of Sales Person compared to the initial image above):




      Another interesting clue is that this has changed the setting in the underlying filter dialog from "Select From List" to "Use All".  Presumably this causes the behavior of the underlying query building the quick filter picklist to change:



      That's our basic problem, and looking for tips.  I don't think this should be expected behavior in Tableau, row-level security should be applied to both data AND filter rendering, but it seems temperamental for quick filters.  As a hack, I can add an arbitrary formula condition (e.g. "1=1" to force Tableau to preserve relevant values and work around this.


      Is this a defect?  If by design, what is the reasoning?  This could open up a significant security issue for customers unaware of this behavior.


      Thanks for any advice.  Sample workbook attached to reproduce the behavior. Just follow along with the pictures. Chuck