Lead management sensitive data not encrypted at rest despite field-level encryption configuration

We’ve configured field-level encryption for sensitive lead data (email, phone, SSN) through the Data Security module, but when I query the database directly, these fields are still stored in plaintext. The encryption configuration shows as active and the key management service is running, but the data isn’t actually being encrypted.

Configuration status:


Field: Lead.EmailAddress
Encryption: Enabled
Key: AES-256-KMS
Status: Active
Actual Storage: Plaintext (verified via DB query)

We’ve set up field-level encryption policies, configured the key management service with proper key rotation, and scheduled re-encryption jobs for existing data. However, both new leads and existing leads remain unencrypted in the database. This is a critical compliance violation as we’re required to encrypt all PII at rest. Has anyone successfully implemented field-level encryption for lead data and can identify what might be preventing the encryption from actually being applied?

I’ll provide a comprehensive solution addressing all aspects of encryption for sensitive lead data in Oracle CX Cloud.

Understanding Encryption Layers: First, it’s critical to understand that Oracle CX Cloud implements encryption at multiple layers, and what you’ve configured is application-layer field encryption, not database-level at-rest encryption.

Field-Level Encryption (Application Layer): This is what you configured through the Data Security module. It works as follows:

  1. Data is encrypted/decrypted by the application tier when accessed through CRM interfaces
  2. Encryption keys are managed by the Key Management Service (KMS)
  3. Direct database queries bypass this layer and show plaintext
  4. This protects data when accessed through APIs and UI, but NOT against direct database access

To verify your field-level encryption is working:

  • Access lead records through the CX Cloud UI
  • Use the REST API to retrieve lead data
  • Check if sensitive fields show encrypted values or are properly decrypted only for authorized users

If you’re seeing plaintext through the application as well, then field-level encryption isn’t functioning. Verify:

  1. Navigate to Setup > Data Security > Field Encryption

  2. Confirm these fields are marked for encryption:

    • Lead.EmailAddress
    • Lead.Phone
    • Lead.SSN
    • Any other PII fields
  3. Check encryption status for each field - should show “Encryption: Active”

Key Management Service Configuration: The KMS must be properly configured and operational:

  1. Go to Setup > Security > Key Management Service
  2. Verify KMS status shows “Running” and “Connected”
  3. Check that encryption keys are properly generated:

Master Key: Active
Field Encryption Key: Active
Key Rotation: Enabled (90 days)
  1. If keys show as “Pending” or “Failed”, regenerate them:
    • Click “Regenerate Master Key”
    • Wait for key propagation (can take 15-30 minutes)
    • Verify all field encryption keys are updated

Re-encryption Jobs: This is often the missing piece - existing data must be re-encrypted after enabling field encryption:

  1. Navigate to Setup > Data Security > Re-encryption Jobs

  2. Check status of the lead data re-encryption job

  3. If no job exists or job failed, create a new re-encryption job:

    • Object: Lead
    • Fields: EmailAddress, Phone, SSN
    • Execution: Schedule for off-peak hours
  4. Monitor job progress - for large lead databases, this can take hours or days

  5. Until re-encryption completes, existing leads remain unencrypted while new leads are encrypted

Compliance Verification: For true compliance with at-rest encryption requirements (GDPR, HIPAA, PCI-DSS), you need database-level encryption:

Transparent Data Encryption (TDE) - Database Level: This encrypts data files on disk, protecting against physical theft and unauthorized database access.

For Oracle-managed CX Cloud instances:

  1. Log into Oracle Cloud Infrastructure Console
  2. Navigate to your CX Cloud database instance
  3. Check Database Configuration > Encryption Settings
  4. Verify TDE status: Should show “Enabled” for compliance
  5. If TDE is not enabled, you’ll need to open a service request with Oracle Support to enable it (this requires database downtime)

For customer-managed deployments:

  1. Connect to the database as SYSDBA
  2. Check TDE status:
SELECT * FROM V$ENCRYPTION_WALLET;
SELECT TABLESPACE_NAME, ENCRYPTED
FROM DBA_TABLESPACES;
  1. If TDE is not enabled, enable it:
    • Configure Oracle Wallet for key storage
    • Enable TDE on tablespaces containing lead data
    • This requires DBA privileges and careful planning

Recommended Implementation Approach:

  1. Immediate Actions:

    • Verify KMS is running and keys are active
    • Confirm all sensitive fields are marked for encryption
    • Verify re-encryption jobs have completed successfully
    • Test field encryption by accessing data through CRM UI
  2. Short-term (1-2 weeks):

    • Verify TDE status on your database instance
    • If TDE is not enabled, engage Oracle Support to enable it
    • Plan for database maintenance window if TDE enablement requires downtime
  3. Long-term:

    • Implement key rotation policies (recommended: 90-day rotation)
    • Set up monitoring alerts for encryption service failures
    • Schedule periodic re-encryption jobs to catch any missed records
    • Conduct quarterly compliance audits to verify encryption is functioning

Compliance Documentation: For audit purposes, document:

  1. Field-level encryption configuration (screenshots from Data Security module)
  2. TDE enablement verification (database configuration or OCI console screenshots)
  3. KMS operational status and key rotation schedule
  4. Re-encryption job completion logs
  5. Test results showing encrypted data storage

Critical Understanding: Your current configuration provides application-layer protection but NOT true at-rest encryption. For compliance with regulations requiring encryption at rest:

  • Field-level encryption alone is INSUFFICIENT
  • You MUST have TDE enabled at the database level
  • Both layers together provide defense-in-depth: TDE protects data files, field encryption protects application access

Verify TDE status immediately and engage Oracle Support if it’s not enabled. Until TDE is confirmed active, you have a compliance gap regardless of field-level encryption configuration.


This draft is based on general Oracle CX Cloud knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.

I’ve seen this issue before. Field-level encryption in Oracle CX Cloud operates at the application layer, not the database layer. When you query the database directly, you bypass the encryption layer and see the plaintext data. The encryption/decryption happens in the application tier when data is accessed through the CRM interface or APIs. However, if you’re seeing plaintext through the application as well, then the encryption isn’t working correctly.

There’s a critical distinction here - Oracle CX Cloud offers two types of encryption: transparent data encryption (TDE) at the database level, and field-level encryption at the application level. For true at-rest encryption that protects against database-level access, you need TDE enabled on the Oracle Database instance hosting your CX Cloud data. Field-level encryption alone only protects data in transit and when accessed through the application. If your compliance requirement is for encryption at rest, you need to verify that TDE is enabled on your database instance, which is typically a platform-level configuration rather than something you configure in the CX Cloud UI.

That’s a crucial distinction I wasn’t aware of. So if I understand correctly, the field-level encryption I configured in the Data Security module is application-layer encryption that protects data when accessed through CRM interfaces, but it doesn’t encrypt the data in the database tables themselves? For actual at-rest encryption, I need TDE enabled at the database level? How do I verify if TDE is enabled on our Oracle CX Cloud instance, and is this something we can configure or does it require Oracle support?

TDE configuration for Oracle CX Cloud instances depends on your deployment model. For Oracle-managed cloud instances, TDE is typically enabled by default but you should verify through your service console. For customer-managed deployments, you need to enable TDE at the Oracle Database level. You can check TDE status by querying V$ENCRYPTED_TABLESPACES view if you have DBA access. However, for application-layer field encryption to work properly, you also need to ensure the key management service is correctly integrated and that re-encryption jobs have completed for existing data.

One important point about field-level encryption in CX Cloud - even when properly configured, it only encrypts data for fields explicitly marked for encryption. You mentioned configuring Lead.EmailAddress, but did you also configure Lead.Phone and Lead.SSN? Each sensitive field requires individual encryption configuration. Also, the re-encryption jobs for existing data can take considerable time depending on data volume. Check the job status to ensure re-encryption has completed - until it does, existing records remain unencrypted even though new records are encrypted.

I want to emphasize the compliance verification aspect. For regulatory compliance (GDPR, HIPAA, etc.), you need to be clear about what level of encryption is required. Application-layer encryption protects data in transit and when accessed through the application, but anyone with direct database access can still see plaintext. Database-level TDE encrypts the actual data files on disk, protecting against physical theft or unauthorized database access. Most compliance frameworks require TDE for true at-rest encryption.