Column-Level Permissions

Control data access at the column level. Hide sensitive information from specific agents while maintaining usability.

🔒 What Are Column Permissions?

Column permissions let you:

🎯 Use Cases

Customer Data

Show name and company, hide SSN and credit cards

Employee Records

Show job title and department, hide salary and reviews

Financial Data

Show aggregates, hide individual account details

Healthcare Records

Show demographics, hide diagnoses and treatments

⚙️ How It Works

Agent-Level Permissions

Column permissions are configured per agent:

  1. Agent is created with access to specific tables
  2. For each table, admin selects visible columns
  3. AI cannot see or query hidden columns
  4. Hidden columns are excluded from schema context
How AI Agents Work

The AI receives only the schema for visible columns. It has no knowledge that hidden columns exist, ensuring they can't be accidentally queried or exposed.

📝 Configuring Column Permissions

During Agent Creation

  1. Navigate to Agents → New Agent
  2. Select data source and tables
  3. For each table, click "Configure Columns"
  4. Select which columns to show
  5. Save agent

Example: customers Table

✅ Visible Columns:
  - customer_id
  - customer_name
  - company_name
  - industry
  - region
  - created_at

❌ Hidden Columns:
  - ssn
  - credit_card_number
  - bank_account
  - internal_notes
  - credit_score

Editing Existing Agent

  1. Navigate to Agents
  2. Click on the agent
  3. Click "Edit"
  4. Go to "Table & Column Permissions"
  5. Modify column selections
  6. Save changes

🔍 Query Behavior

User Query:

"Show me all customer information for ID 12345"

Generated SQL (with permissions):

SELECT 
  customer_id,
  customer_name,
  company_name,
  industry,
  region,
  created_at
FROM customers
WHERE customer_id = 12345;
Notice

Sensitive columns (ssn, credit_card_number, etc.) are automatically excluded. The AI doesn't know they exist.

🎓 Common Patterns

1. Sales Agent (Limited PII)

Table: customers
Visible:
  ✅ customer_id, name, company, industry
  ✅ email, phone
  ✅ sales_rep_id, account_status
Hidden:
  ❌ ssn, credit_card, bank_account
  ❌ internal_notes, credit_score

2. Finance Agent (No PII)

Table: orders
Visible:
  ✅ order_id, customer_id, order_date
  ✅ total_amount, payment_method
  ✅ order_status
Hidden:
  ❌ customer_name, email, phone
  ❌ shipping_address
  ❌ credit_card_last4

3. Analytics Agent (Aggregates Only)

Table: employees
Visible:
  ✅ employee_id, department, job_title
  ✅ hire_date, employment_status
Hidden:
  ❌ first_name, last_name, email
  ❌ ssn, salary, bonus
  ❌ performance_rating, manager_notes

4. Executive Dashboard (High-Level Only)

Table: revenue
Visible:
  ✅ date, region, product_category
  ✅ total_revenue, order_count
Hidden:
  ❌ customer_id, sales_rep_id
  ❌ individual_order_details
  ❌ cost_of_goods_sold, profit_margin

🔐 Security Best Practices

✅ Default Deny

Start with no columns, explicitly add what's needed

✅ Least Privilege

Only show columns necessary for the agent's purpose

✅ PII Protection

Always hide SSN, credit cards, account numbers

✅ Regular Audits

Review permissions quarterly

✅ Document Decisions

Note why columns are hidden/visible

✅ Test Queries

Verify sensitive data isn't exposed

🌐 Compliance Support

GDPR

HIPAA

PCI DSS

⚡ Advanced Features

Dynamic Masking

Show partial data instead of hiding completely:

credit_card_number → ****-****-****-1234
ssn → ***-**-1234
email → j***@example.com
Coming Soon

Dynamic masking is currently in beta. Contact support to enable for your organization.

Conditional Permissions

Show/hide columns based on conditions:

🔍 Auditing & Monitoring

Access Logs

Track which users query which columns:

Permission Changes

Audit trail for permission modifications:

Compliance Reports

Generate reports for auditors:

🎯 Implementation Checklist

Initial Setup

  1. ✅ Identify sensitive columns in all tables
  2. ✅ Document column classification (public, internal, confidential, restricted)
  3. ✅ Create agents with appropriate permissions
  4. ✅ Test queries to verify hidden columns are inaccessible
  5. ✅ Train users on data access policies

Ongoing Maintenance

  1. ✅ Review permissions quarterly
  2. ✅ Update as schema changes
  3. ✅ Audit access logs monthly
  4. ✅ Revoke unnecessary access
  5. ✅ Document all permission changes

⚠️ Common Mistakes

Avoid These Pitfalls
  • Default allow: Showing all columns by default
  • Forgetting new columns: Not reviewing permissions when schema changes
  • Too permissive: "They might need it someday"
  • No documentation: Not recording why columns are hidden
  • No audits: Set and forget without periodic review

🔧 Troubleshooting

Query Returns Unexpected Results

Cause: Hidden columns affecting joins or filters

Solution: Review which columns the agent can see. Add necessary columns for proper query execution.

User Can't Access Needed Data

Cause: Column hidden from their agent

Solution: Create new agent with broader permissions or assign different agent.

Sensitive Data Still Showing

Cause: User switched to different agent with more permissions

Solution: Review agent assignments and ensure proper column hiding.

📊 Example Configurations

Retail Company

Agents:
1. Sales Agent
   - See: customer contact info, order history
   - Hide: payment info, internal notes

2. Marketing Agent
   - See: demographics, purchase patterns
   - Hide: PII, payment info

3. Finance Agent
   - See: order amounts, payment status
   - Hide: customer names, contact info

4. Executive Agent
   - See: high-level metrics only
   - Hide: all individual customer data

Healthcare Provider

Agents:
1. Operations Agent
   - See: appointment times, facility usage
   - Hide: patient names, diagnoses

2. Billing Agent
   - See: patient ID, billing codes, amounts
   - Hide: medical details, doctor notes

3. Research Agent
   - See: de-identified medical data
   - Hide: all PII (names, addresses, DOB)

4. Admin Agent
   - See: all data (restricted to compliance team)

🚀 Next Steps