
Supported Versions & Platforms
| Platform | Minimum Version | Notes |
|---|---|---|
| PostgreSQL | 12+ | Self-hosted or any cloud |
| Amazon RDS | 12+ | All instance classes |
| Amazon Aurora | PostgreSQL 12+ | Cluster and serverless |
| Supabase | Any | Direct connection or pooler |
| Google Cloud SQL | 12+ | Public or private IP |
| Azure Database | 12+ | Single server or flexible |
| Heroku Postgres | Any | Requires SSL |
Connection Settings
| Field | Description | Example |
|---|---|---|
| Connection Name | Friendly identifier | Production PostgreSQL |
| Host | Hostname or IP address | db.example.com |
| Port | Database port | 5432 |
| Database | Database name | myapp_production |
| Username | Database user | anomalyarmor |
| Password | User password | •••••••• |
| SSL Mode | SSL configuration | require |
SSL Mode Options
| Mode | Description | When to Use |
|---|---|---|
disable | No SSL | Local development only |
require | SSL required, no verification | Recommended for most cloud providers |
verify-ca | Verify server certificate | High security requirements |
verify-full | Verify certificate and hostname | Maximum security |
Creating a Read-Only User
Create a dedicated user with minimal permissions.Verifying Permissions
Test that the user can access metadata:Provider-Specific Instructions
- Amazon RDS
- Amazon Aurora
- Supabase
- Self-Hosted
- Google Cloud SQL
Amazon RDS PostgreSQL
Connection Details:- Host: Your RDS endpoint (e.g.,
mydb.abc123.us-east-1.rds.amazonaws.com) - Port:
5432(default) - SSL Mode:
require
- Go to AWS Console → RDS → Your Instance → Security Groups
- Edit inbound rules
- Add rule:
- Type:
PostgreSQL - Port:
5432 - Source: AnomalyArmor IPs (see Settings → Security)
- Type:
- Ensure
rds.force_ssl = 1 - Download RDS CA certificate bundle
RDS instances in private subnets require NAT Gateway or VPC peering for AnomalyArmor access. Contact us for Enterprise VPC peering options.
Connection Pooling Considerations
If you use a connection pooler (PgBouncer, Pgpool):PgBouncer
- Transaction mode: Works with AnomalyArmor
- Session mode: Recommended for best compatibility
- Statement mode: May have issues with complex queries
Connection Limits
AnomalyArmor uses 1-2 connections during discovery. If you’re near your connection limit:- Use a read replica for monitoring
- Schedule discovery during off-peak hours
- Increase
max_connectionsif possible
What We Query
AnomalyArmor runs these types of queries:Troubleshooting
Connection refused
Connection refused
Causes:
- Firewall blocking the connection
- Wrong hostname or port
- Database not running
- Verify AnomalyArmor IPs are allowlisted
- Check security group rules (for RDS/Aurora)
- Test connectivity:
nc -zv hostname 5432 - Verify database is accepting connections
Password authentication failed
Password authentication failed
Causes:
- Wrong password
- User doesn’t exist
- pg_hba.conf not configured
- Verify password (copy-paste to avoid typos)
- Confirm user exists:
SELECT usename FROM pg_user; - Check pg_hba.conf allows the connection method
- Try resetting the password
SSL connection required
SSL connection required
Causes:
- Database requires SSL but connection uses
disable - Wrong SSL mode for the server
- Set SSL Mode to
require - For RDS/Aurora/Supabase: SSL is required
- For self-hosted: Enable SSL or allow non-SSL (not recommended)
Permission denied for relation
Permission denied for relation
Causes:
- User lacks SELECT permission
- Schema permission missing
No tables found in discovery
No tables found in discovery
Causes:
- User can’t see tables in information_schema
- Schema filter excluding all schemas
- Test as the user:
SELECT * FROM information_schema.tables LIMIT 5; - Check schema filter settings in AnomalyArmor
- Verify tables exist in the expected schemas
Next Steps
Run Discovery
Scan your PostgreSQL database
Set Up Alerts
Get notified of schema changes
