Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Compete to become Power BI Data Viz World Champion! First round ends August 18th. Get started.

Reply
bcdobbs
Community Champion
Community Champion

Tabular - Security Filtering Behaviour = None

Hi,
I came across "Security Filtering Behaviour = None" in Tabular Editor (both 2 and 3) and initially got excited that it would allow me to solve a specifc use case with RLS in order to leave all data available but just hide rows in one dimension table. (Specifically names). Suspect it may just not be supported (yet?) but wondered if anyone knew anything about what it is supposed to do.

I built this demo file

Connected to it with tabular editor (works in both the free version and version 3) and set the compatibility level to 1566 as it told me the property wasn't supported with levels below 1561.

bcdobbs_1-1640350210881.png

 

Then on the relationship between the person table and the results fact table I set Security Filtering Behaviour to None

bcdobbs_0-1640349873431.png

 

I was hoping it would filter that table but not pass anything to any other table.

 

Surprisingly it let me save back to Power Bi Desktop (had thought this would only get anywhere within XLMA connection to service).

 

WIthout RLS active it shows:

bcdobbs_2-1640350500549.png

Note the 12 test results when nothing is filtered.

 

Now the odd bit! It didn't work but almost did...
Turning on one of the RLS rules gives:

bcdobbs_4-1640350630737.png

 

Nothing shows however the number of results still shows as 12. In table view nothing is visible (before someone asks I turned off visual interaction).

 

Thoughts welcome.



Ben Dobbs

LinkedIn | Twitter | Blog

Did I answer your question? Mark my post as a solution! This will help others on the forum!
Appreciate your Kudos!!
6 REPLIES 6
bcdobbs
Community Champion
Community Champion

So I've made it do what I wanted by setting the relationship between Person and Results as Many Many Cardinality with Person filtering results. (That reset the Security Filter = None so had to put it back). Everything now works as I wanted. Would love to know why though! Might be something to do with the Many Many relaitonship breaking table expansion? @AlexisOlson@marcorusso@smpa01@parry2k any ideas?



Updated version with this in place here 



Ben Dobbs

LinkedIn | Twitter | Blog

Did I answer your question? Mark my post as a solution! This will help others on the forum!
Appreciate your Kudos!!

Correct. Limited relationships are not used in table expansion.

 

This is mentioned in both of these articles:
https://www.sqlbi.com/articles/strong-and-weak-relationships-in-power-bi/

https://www.sqlbi.com/articles/relationships-in-power-bi-and-tabular-models/

Thanks Alexis, thought that was the case.
What I'm trying to understand is the behaviour of the "Security Filtering Behaviour = None" and how/why it's behaviour changes with a limited relationship.

I went back and watched some videos from SQLBI's Mastering Tabular. As  a result I wondered if actually the setting only kicked in with a bidirectional relationship. Have a look at:
One to One Example 

Relationships are setup as:

bcdobbs_0-1640551361131.png

and the security filtering behaviour between Person and Demographic is set to none.

 

Connecting to the model with DAX studio as Group 1:

bcdobbs_1-1640551473778.png

 

Then running the following:

 

 

EVALUATE
	Results

EVALUATE 
	{ COUNTROWS ( Results ) }

 

 

gives:

bcdobbs_2-1640551596045.png

(6 rows)

 

vs

 

bcdobbs_3-1640551634070.png

 

Even thinking in terms of expanded table I can't come up with anything close to even a loose explanation of this.



Ben Dobbs

LinkedIn | Twitter | Blog

Did I answer your question? Mark my post as a solution! This will help others on the forum!
Appreciate your Kudos!!
bcdobbs
Community Champion
Community Champion

How does this work as an explanation. Might be miles off so please shoot it down but works in my head.

When Filtering Behaviour is set to None in the latest example the rows in Person table don't go into the filter context and so COUNTROWS returns 12. However when EVALUATE returns 'Results' it returns only rows present in the expanded table.

 

If filtering behaviour is left as default (Single) then rows from Person go into filter context and so COUNTROWS and EVALUATE match.

 

If the relationship is many to many the relationship is limited and so expanded table plays no part.



Ben Dobbs

LinkedIn | Twitter | Blog

Did I answer your question? Mark my post as a solution! This will help others on the forum!
Appreciate your Kudos!!
bcdobbs
Community Champion
Community Champion

No, talking to myself but that logic breaks down when other predicates like Test[Test Name]  = "Test 1" are thrown into the filter context. Going to ponder on it further.



Ben Dobbs

LinkedIn | Twitter | Blog

Did I answer your question? Mark my post as a solution! This will help others on the forum!
Appreciate your Kudos!!
bcdobbs
Community Champion
Community Champion

Have updated the link. Think it originally pointed to the version before I changed things in Tabular Editor. Sorry.



Ben Dobbs

LinkedIn | Twitter | Blog

Did I answer your question? Mark my post as a solution! This will help others on the forum!
Appreciate your Kudos!!

Helpful resources

Announcements
August Power BI Update Carousel

Power BI Monthly Update - August 2025

Check out the August 2025 Power BI update to learn about new features.

August 2025 community update carousel

Fabric Community Update - August 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors