Always Encrypted vs TDE vs dynamic data masking vs row-level security vs Ledger

Verdict: Always Encrypted alone hides plaintext from a db_owner; masking only obscures output for nonprivileged users. Row-level security filters rows, TDE encrypts files at rest, Ledger proves tamper-evidence.

CriterionDynamic data maskingTransparent data encryptionRow-level securityAlways EncryptedLedger
ProtectsMasks column values in query resultsEncrypts database files at restRestricts which rows a principal seesEncrypts chosen columns; key never seen by the engineCryptographic proof records were not altered
Blocks a full-rights DBA seeing plaintextNo; privileged roles bypass the maskNo; DBA reads the live dataNo; controls rows, not column contentYes; administrators cannot decryptNot its purpose
Default on a new Azure SQL DatabaseOffOn, Microsoft-managed keyOffOffOff
Choose whenHide PII from support or helpdesk staffBaseline at-rest encryption; CMK for key custodyMulti-tenant isolation on shared tablesProtect columns from privileged insidersTamper-evidence for auditors or partners

Rules

Traps