Fabric data protection: masking vs row-level vs object-level security vs labels vs endorsement

Verdict: Hide rows by user with row-level security; hide whole columns or tables with object-level security; obscure values with dynamic data masking (inference-vulnerable); classify with sensitivity labels; signal trust with endorsement.

CriterionRow-level securityObject-level securityDynamic data maskingSensitivity labelsEndorsement
What it controlsWhich rows a user seesWhether whole tables or columns are visibleThe displayed value of a columnConfidentiality classificationTrust and discoverability signal
Enforced atSQL analytics endpoint compute, all SQL consumersSemantic modelWarehouse column, query timeInformation-protection policyCatalog metadata
Use whenRegional managers see only their own rowsContractors must not see compensation columns at allReduce accidental exposure of a valueDrive protection by classificationMark the certified gold source
Key limitationFilters rows, not columnsHides schema objects, not row valuesQuery users can still infer values by range filteringClassifies, does not filter dataNo access effect at all

Rules

Traps