Cloudanix Joins AWS ISV Accelerate Program

Cloudanix – Your Partner in Cloud Security Excellence

Why Your Developers Shouldn't See Raw Production PII (and How to Prevent It)

  • Sujay Maheshwari Sujay Maheshwari
  • Monday, Sep 21, 2026

Ask most engineering teams why developers and support staff have read access to production databases, and the answer is almost always some version of “they need it to do their jobs.” That’s true. A support engineer investigating a customer’s ticket needs to look at that customer’s account. A developer debugging a production issue needs to query the affected records. The access itself is legitimate.

What’s rarely examined is what they see when they do. In most production databases, the answer is: everything, in plaintext, for every row the query happens to return — not just the customer the engineer is actually trying to help.

The Gap Between “Needs Access” and “Needs to See Everything”

Consider the realistic version of this. A support engineer gets a ticket: “Customer X says their order didn’t process.” They run a query — reasonably, legitimately — against the orders or customers table, filtered by an email or account ID. The query returns the row for Customer X. It likely also, depending on how the query and the surrounding tooling work, exposes the schema and the columns available: full name, email, phone number, address, payment details, whatever else the table holds.

Nothing about resolving this ticket required the engineer to see Customer X’s phone number or full address. It required confirming an order status. But because database access control typically operates at the table or row level, not the column level, and because there’s no mechanism distinguishing “this engineer needs to see order_status” from “this engineer can see every column in the table,” the access granted is far broader than the task requires.

Now scale this. Fifteen, thirty, a hundred people with some form of production database read access, each capable of running a query that returns full-column results for any row they can reach, with no record of which columns they actually looked at versus which ones the query merely happened to expose.

Why This Is a Bigger Risk Than It Feels Like Day to Day

It’s not one person’s carelessness — it’s a systemic exposure. Any individual engineer resolving one ticket at a time feels routine. But the aggregate exposure is every column of every row every engineer can reach, multiplied by every engineer with that access. A single compromised laptop, a single set of leaked database credentials, or a single engineer with less-than-perfect judgment turns “necessary access for one ticket” into “unrestricted access to every customer’s PII.”

A support engineer can, technically, SELECT * and export everything. Nothing in a typical setup prevents a legitimate, authenticated user from running an unbounded query and exporting the entire table. Whether this happens through malice, curiosity, or a poorly-scoped debugging session, there’s usually no guardrail stopping it and no clean record afterward showing what actually happened.

Regulatory frameworks increasingly ask the specific question you can’t answer. “Who accessed customer PII, when, and was it within the scope of their role?” is a question that shows up directly or indirectly across GDPR, HIPAA, and India’s DPDPA. If the honest answer is “we don’t log at that level of detail,” that gap is itself the audit finding.

It fails the principle everyone already agrees with. Nearly every security team endorses least privilege in the abstract. Unrestricted column-level visibility on every query a legitimately-authorized user runs is the opposite of least privilege in practice, even when the table-level access decision was entirely reasonable.

Why the Obvious Fixes Fall Short

Restricting table access entirely solves the problem by making the engineer’s job harder — they now can’t resolve the ticket without escalating to someone else, which doesn’t scale and generates its own friction and delay.

Creating separate “masked” views or read replicas is a real approach, but it requires maintaining a parallel schema, keeping it in sync with the production schema as it evolves, and hoping every tool and every engineer actually uses the masked version instead of the real one. In practice, the masked view often becomes stale or gets bypassed because it’s inconvenient.

Training and policy (“please don’t run unbounded SELECT * queries”) rely on every person, every time, remembering and following a guideline with no technical enforcement behind it. This is not a security control; it’s a hope.

What Dynamic Masking Actually Does Differently

The more durable fix operates at the query layer itself, at the moment a query executes, rather than at the schema or the table-grant level. The idea: the same query, run by different roles, returns different levels of visibility — automatically, based on policy, with no separate schema to maintain.

Concretely, this looks like:

  • A support engineer’s query against the customers table returns the account status and order history needed to resolve a ticket, but the phone number, full address, and payment details are masked (shown as redacted, tokenized, or partially visible — e.g., last four digits only) — based on their role, not based on which columns they happened to select.
  • A role with a genuine, defined need — a fraud investigation, for example — can be configured to see more, with that broader visibility itself logged and attributable.
  • The masking is enforced at the point the query runs against the live production schema. There’s no separate masked replica to keep in sync, because the same database is being queried — the response is simply filtered according to policy before it reaches the requester.

This changes the economics of the problem. Instead of relying on every engineer’s judgment every time, the system enforces the boundary automatically, on every query, without requiring the engineer to think about it or slowing down the legitimate task they’re actually trying to complete.

What Should Accompany Masking

Masking alone answers “what can they see.” A complete answer also needs:

  • Query-level audit, attributing every query to the actual human who ran it (not a shared service account), so “who accessed this customer’s PII and when” has a real answer.
  • Guardrails against destructive or bulk operations — blocking an unbounded SELECT * export or a DELETE without a WHERE clause before it executes, not just logging it after the fact.
  • Policy that reflects actual roles, not a single blanket rule — a support engineer, a data analyst, and a DBA legitimately need different levels of visibility, and the masking policy should reflect that rather than treating all authenticated users identically.

See Dynamic Masking in Action

This 2-minute interactive demo shows how query-level masking, guardrails, and audit work together to protect production data without slowing engineers down.

The Real Question to Ask Your Own Team

If you want to know whether this gap exists in your own environment, the test is straightforward: pick any engineer with production database read access and ask what the most sensitive thing is that they could see on their next query, regardless of what they’re actually trying to do. If the honest answer is “everything in whichever table they’re allowed to touch,” the access decision was reasonable, but the visibility that decision grants is far broader than any single task requires — and that gap is exactly what dynamic, role-based masking is built to close.

People Also Read

What Our Users Are Saying

Customer Reviews

Cloudanix is trusted by security leaders worldwide to deliver proactive, reliable, and cutting-edge cloud security.

One day, I changed the password of a root account, and my CTO called me within less than a minute to confirm if I did so. I was not expecting a reaction this quick. He told me Cloudanix alerted him of this password change and that he wanted to confirm as it was a critical security notification. I couldn't believe it!

Ritesh Agarwal
Ritesh Agarwal
CEO, Airgap Networks

Compliance is one way of staying secure, but what I want is the ability to go deeper and attain 'true security.' Cloudanix provides us the capability to do so.

Vishal Madan
Vishal Madan
Head of Engineering, iMocha

Cloudanix is building for the future of the cloud, which makes the product all the more desirable.

Ritesh Agarwal
Ritesh Agarwal
CEO, Airgap Networks

Cloudanix gave us the visibility we were missing. Being able to move from permanent access to a robust Just-In-Time (JIT) workflow has fundamentally changed our security posture without slowing down our engineering velocity.

Pavan Kumar Lekkala
Pavan Kumar Lekkala
SRE Lead, HugoHub

We are excited to leverage Cloudanix's comprehensive multi-cloud DevSecOps solution to secure our production workloads on AWS. Cloudanix has demonstrated that it can solve many challenges that DevSecOps teams face while continually adding new features such as SOC2 compliance and drift detection.

Satish Mohan
Satish Mohan
Co-founder & CTO, Airgap Networks

Managing third-party partner access was once a major concern for our security posture. With Cloudanix JIT Cloud, we've effectively achieved zero third-party risk. We can now grant access confidently, knowing that it is temporary, audited, and automatically revoked, resulting in a 100% reduction in our privileged access exposure.

Okesh Badhiye
Okesh Badhiye
Head of Technical Engineering, Finfinity

The snooze feature and responsible alerts have helped us save time and prioritize what to tackle first.

Satish Mohan
Satish Mohan
Co-founder & CTO, Airgap Networks

Implementing Cloudanix JIT internally allowed us to practice what we preach. By eliminating permanent access to our own clouds and databases, we've neutralized the risk of standing privileges, ensuring our own 'keys to the kingdom' are never left exposed.

Girish Manghnani
Girish Manghnani
Managing Partner, Tech Inspira

The problem with permissions is a lot of times, the gaps are left open due to oversights from inside the organization itself. With Cloudanix's CIEM, we get a complete view of user permissions and access. This enables us to update the permissions, reducing the attack surface.

Nilesh Pethani
Nilesh Pethani
Application Architect, iMocha

In the world of Fintech, trust is our currency. Cloudanix provided the frictionless visibility we needed to secure our EKS workloads across AWS, ensuring we stay audit-ready for SOC2 and GDPR without slowing down our engineering velocity.

Amol Naik
Amol Naik
Head of Security & Infrastructure, HugoHub

Cloudanix delivered value within 5 minutes of onboarding. Continuous monitoring, timely detection, and excellent documentation helped us attain a great cloud security posture.

Divyanshu Shukla
Senior DevSecOps, Meesho

Technology strategies and business strategies are in a state of constant change which includes centralization and decentralization of responsibilities. Regardless of strategic shift, we still have intellectual property to protect. Cloudanix are critical partners for us in our public cloud security posture across our three cloud providers.

Jerry Locke
Jerry Locke
Senior Director Global Solutions Engineering, Eversana

Cloudanix has been amazing. They opened up a common Slack channel with us — and it feels like we are talking to our own team and getting things done with Cloud security. The support team is always available, friendly, helpful, and ready to go out of their way.

Satish Mohan
Satish Mohan
CTO, Airgap Networks

Beyond just access management, Cloudanix CSPM has given us a unified view of our AWS environment. The real-time alerting and anomaly detection allow us to prevent any untoward activity before it happens, which is critical for a marketplace connecting 50+ financial institutions.

Okesh Badhiye
Okesh Badhiye
Head of Technical Engineering, Finfinity

For a Fintech company, data is our most valuable — and most sensitive — asset. Cloudanix DAM hasn't just improved our visibility; it has given us control. The ability to mask data and prevent unauthorized queries in real-time is a game-changer for our compliance and customer trust.

Jiten Gala
Jiten Gala
President Engineering and Product, Kapittx

Our clients, especially in the Middle East financial sector, demand absolute accountability. Cloudanix JIT Cloud has been a competitive differentiator for us, allowing us to provide secure, governed access to customer accounts that meet their strictest audit and compliance requirements.

Girish Manghnani
Girish Manghnani
Managing Partner, Tech Inspira

Cloudanix is always on my team's lips because of its exceptional support. Be it a small or big query, Cloudanix has gone above and beyond to resolve them. This one's a keeper for us.

Sujit Karpe
Sujit Karpe
CTO, iMocha

For a long-lasting partnership, great support goes a long way. Cloudanix has delivered exceptional support whenever required. Their edge is their team is always ready to go beyond to solve any issues that we have. This speaks volumes about the culture at Cloudanix.

Akash Maheshwari
Akash Maheshwari
Co-founder, MoveInSync

Beyond the technology, Cloudanix feels like an extension of our own team. Their willingness to stand up a dedicated Middle East tenant for us and provide exceptional support at a sensible price makes them a long-term partner for Hugosave.

Surya Tamada
Surya Tamada
CTO, HugoHub

The real-time notifications that Cloudanix provides are a real lifesaver. Their adaptive notifications ensure that my team stays productive and doesn't get interrupted all the time.

Digvijay Singh
Staff Security Engineer, Meesho

The whole point in technological evolution is to help improve the world we live in. We must protect that and to do so requires an effective and efficient security strategy. The Cloudanix team helped make our public cloud security posture management strategy a reality. The symbiotic relationship we have allows for a continuous feedback loop which is how business should operate.

Larry Wheat
Larry Wheat
Staff Solutions Engineer, Eversana

Ready to see your graph?

Connect a cloud account in under 30 minutes. See every finding rooted in identity, asset, and blast radius — with a fix path attached.

Book a Demo