Where to Set Up Row-Level Security
You can set up row-level security in the semantic model or in the database.
Implementing row-level security in the semantic model provides benefits such as:
-
All users share the same database connection pool for better performance.
-
All users share cache for better performance.
-
Security rules can be defined and maintained to apply across many federated data sources.
Implementing row-level security in the database is good for situations where multiple applications share the same database. When you design and implement row-level security in the database, you should also define and apply object permissions in the semantic model.
Although it's possible to set up row-level security in both the semantic model and in the database, you typically don't enforce row-level security in both places unless there is a specific need to do so.