How Unity Catalog automatically filters which rows each user can see, based on their identity.
📖 Row Filters & Column Masks Documentation
Alice runs a query: SELECT * FROM sales_data
She wants to see sales records, but the table contains data from all sales reps.
The table contains records owned by Alice, Bob, and Carol.
Without row filters, Alice would see everyone's data — a security problem!
Unity Catalog applies the row filter function:
WHERE owner = current_user()
For Alice, this becomes: WHERE owner = 'alice@company.com'
Bob's and Carol's rows fail the filter — they simply don't exist in Alice's results.
Alice never knows these rows exist. She sees a complete-looking dataset.
Alice receives only her rows. Same query, different user, different results.
If Bob runs the same query, he sees only his rows. Zero code changes needed.
Row filters are applied automatically by UC — no app code changes needed.
Same query returns different data based on who's asking.
Users don't know filtered rows exist — complete isolation.
UC function returns the authenticated user's identity automatically.