Start here. This is the direct spoken answer to practice first.
Why this question matters
Global query filters can apply tenant predicates consistently, but tenant isolation also depends on trusted tenant resolution, write validation, database constraints or policies, administrative bypass control, and tests for every access path.
I would use the query filter as one guardrail, not the whole security model. The tenant id needs to come from trusted server-side context, not a client-supplied value. Entities that are tenant-owned need a tenant key, and queries need tests that prove users cannot see another tenant's rows. Raw SQL, background jobs, admin paths, and IgnoreQueryFilters need special review because they can bypass the normal filter.