Back
Database Management

Reliable database management for modern, high-performance systems.

Back
Data Modernisation

Reliable database management for modern, high-performance systems.

Back
Data Engineering

Reliable database management for modern, high-performance systems.

Back
Analytics & Intelligence

Reliable database management for modern, high-performance systems.

Back
Data Strategy Consulting

Reliable database management for modern, high-performance systems.

How Geopits Anonymized PAN & GST Data Without Duplicating a Single Table

Zero

Data Duplication

Zero

Application Code Changes

3-Step

Database Configuration

2

Role-Based Views (TechOps & Non-TechOps)
Company Info
Company
Arya.ag
Website
Arya.ag
About
Connects farmers, farmer producer organisations, financial institutions, SME agri processors, and corporate agribusinesses through a network of commodity storage points across India.
Industry
Agricultural commerce
Tech Used
GCP-managed PostgreSQL (Cloud SQL), postgresql_anonymizer (anon extension)

About

Arya.ag

The client is one of India's largest agricultural commerce platforms, connecting farmers, farmer producer organisations, financial institutions, SME agri processors, and corporate agribusinesses through a network of commodity storage points across the country. Sensitive customer identifiers such as PAN and GST are stored in a GCP-managed PostgreSQL database and must be protected as per RBI guidelines, while application and TechOps users still require access to the original values for business operations.

Business Challenges

Protecting regulated customer identifiers had to happen without disrupting live application traffic or the daily reporting and audit workflows already built on top of the database.

Regulatory exposure

PAN and GST are regulated identifiers under RBI guidelines and must not be visible to users outside a defined operational role.

Dual access needs

Application services and TechOps needed real values for business operations; IAM, reporting, and audit users only need to know a value existed, not what it was.

Storage and sync risk

Maintaining a separately masked copy of the data would increase storage overhead, maintenance effort, and the risk of inconsistent or leaked sensitive data.

Zero-disruption constraint

Enforcing this at the application layer, or duplicating the table, could not be allowed to slow down or break application and TechOps access.

Project Objectives

Geopits was brought in to anonymize PAN and GST dynamically at query time based on user role, ensuring regulatory compliance without impacting application behavior or data integrity.

Key Goals:

  • Anonymize PAN and GST dynamically at query time, based on the requesting user's role.
  • Keep the original values exactly as they were in the database, with no permanent masking or duplication. 
  • Ensure application and TechOps access could not slow down or break as a result of the change.
  • Work inside the existing GCP-managed PostgreSQL setup, without new infrastructure.

Solution Provided by Geopits

Geopits implemented a database-native, role-based, query-time anonymization layer using PostgreSQL's native view architecture and anon masking rules.

Access control and role segregation

Structured permissions around two distinct database roles, TechOps and Non-TechOps, to enforce requirements seamlessly at the database layer.

Role-based view layer

Built a TechOps view mapping directly to the base table, and a Non-TechOps view integrating anon masking logic to automatically obfuscate sensitive strings.

Anonymization engine setup

Enabled the open-source anon PostgreSQL extension on the Cloud SQL instance and initialized its default masking functions and schema.

Column masking rules and views

Declared column-level masking rules for PAN and GST, then constructed the TechOps and Non-TechOps view layer directly above the base table t1001_atms.tbl_entity.

Capabilities
Before
After
Data storage
Would require a separate masked copy
Zero-storage - no duplication, no persisted masked records
Data consistency
Risk of masked and source copies falling out of sync
Single source of truth, always consistent
Application behavior
Would need app-side logic to enforce masking
Uninterrupted - no application code changes
Access enforcement
Reliant on application-side logic
Centralized, engine-level enforcement in the database
Regulatory compliance
Sensitive PAN/GST exposed beyond authorized roles
End-to-end alignment with RBI guidelines

Key outcomes

Zero-storage data obfuscation

Anonymization is enforced at query execution time, without altering raw source data or persisting hard-masked records on disk.

Elimination of data replication

Removes the need for maintaining separate, masked database instances, eliminating cloud storage inflation and preventing cross-environment data synchronization drift.

Centralized engine-level enforcement

Implements role-based access rules directly within the database layer, eliminating reliance on application-side logic and preventing unauthorized data leaks.

Strict regulatory alignment

Delivers end-to-end compliance with RBI guidelines for securing sensitive customer identifiers (PAN, GST, and Aadhaar).

Uninterrupted operational workflows

Allows core application microservices and TechOps teams to function without impact while seamlessly restricting non-authorized roles from viewing sensitive identifiers.

Conclusion

Geopits implemented a dynamic, role-based anonymization architecture for PAN and GST data inside the client's GCP-managed PostgreSQL environment, enforcing RBI-aligned data protection at query time, without altering, duplicating, or replicating a single row of source data, and without disrupting application or TechOps workflows.

Ready to Transform Your Data?

Geopits works alongside your team as a strategic partner, starting with stabilizing your current databases, then modernizing your data infrastructure, and ultimately helping you unlock the full potential of AI.

170

Happy Clients so far

2100+

Databases Managed

142+

Successful Migrations

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
New