Sensitive data lives in many databases longer than it should. Names, addresses, emails, phone numbers, or ID numbers slip into tables meant for quick lookup and stay there, visible to any engineer or system with read access. Getting full access control and deletion right is harder than it sounds. When teams move fast, permissions drift. Columns that once held harmless values start storing sensitive fields. Queries touch more than they need to. Backups pile up.
The right approach to data access and deletion starts with knowing exactly where your sensitive columns live. Without that map, you can’t control them. Discovery should be continuous. Schema changes happen weekly, sometimes hourly. You need to flag sensitive columns in real time so they can be protected, masked, or dropped.
Once you know where the sensitive columns are, enforce strict column-level permissions. Not every role should see every column. Apply grants and revokes in code and policy, not just in documentation. Limit direct database access so that only approved queries run in production. Every read permission you remove is one less surface for a leak.