Connect AnomalyArmor to your Snowflake data warehouse to monitor schemas, track freshness, and detect schema drift across your tables and views.Documentation Index
Fetch the complete documentation index at: https://docs.anomalyarmor.ai/llms.txt
Use this file to discover all available pages before exploring further.
Requirements
Before connecting, ensure you have:- Snowflake account with database access
- Virtual warehouse for query execution
- User with SELECT permissions on information_schema and target schemas
- Network access from AnomalyArmor to your Snowflake account
Connection Settings
| Field | Description | Example |
|---|---|---|
| Connection Name | Friendly identifier | Snowflake Production |
| Account | Snowflake account identifier | xy12345.us-east-1.aws |
| Database | Database (catalog) to monitor | PRODUCTION_DB |
| Warehouse | Virtual warehouse name | COMPUTE_WH |
| Username | Snowflake user account | anomalyarmor_user |
| Password | User password | •••••••• |
| Schema (Optional) | Default schema | PUBLIC |
| Role (Optional) | Role to use | ANOMALYARMOR_ROLE |
Finding Your Account Identifier
Your account identifier format depends on your cloud provider and region:| Cloud Provider | Format |
|---|---|
| Standard (AWS) | xy12345.us-east-1.aws |
| Azure | xy12345.east-us-2.azure |
| GCP | xy12345.us-central1.gcp |
Creating a Read-Only User
Create a dedicated user and role with minimal permissions.Per-Schema Permissions
For more granular control:Authentication Methods
- Password Authentication
- Key-Pair Authentication (Recommended)
Standard username/password authentication. Simplest setup for getting started.In AnomalyArmor:
- Enter your username and password
- No additional configuration required
Virtual Warehouse Considerations
Warehouse Sizing
AnomalyArmor runs lightweight metadata queries. Recommended warehouse configuration:| Environment | Size | Notes |
|---|---|---|
| Development | X-Small | Sufficient for testing |
| Production | Small | Faster query execution |
Auto-Suspend Configuration
Enable auto-suspend to minimize costs:Cost Estimation
| Metric | Value |
|---|---|
| Query duration | < 1 second per discovery |
| With 1-min auto-suspend | ~$0.01-0.05 per discovery |
| Hourly monitoring | ~$15-30/month |
Network Policies
If your Snowflake account uses network policies, add AnomalyArmor’s IP addresses:Find AnomalyArmor’s current IP addresses in Settings > Security in the AnomalyArmor dashboard.
What We Monitor
AnomalyArmor discovers and monitors these Snowflake objects:| Object Type | Monitored | Notes |
|---|---|---|
| Tables | Yes | Including managed and external |
| Views | Yes | Standard and materialized |
| Schemas | Yes | Schema-level metadata |
| Stages | No | External/internal stages not monitored |
| Streams | No | Change data capture not monitored |
| Tasks | No | Scheduled tasks not monitored |
Metadata Captured
For each table and view:- Table name and schema
- Column names and data types
- Nullability and default values
- Last modified timestamp (for freshness)
- Partition information (where applicable)
Multiple Databases
To monitor multiple databases, create separate data sources for each:| Data Source | Database |
|---|---|
| Snowflake Production | PRODUCTION_DB |
| Snowflake Staging | STAGING_DB |
| Snowflake Analytics | ANALYTICS_DB |
Each data source needs access to its respective database. Use the same credentials if they have permissions across databases.
Connection Architecture
What We Query
AnomalyArmor runs these types of queries:Troubleshooting
Connection test fails
Connection test fails
Common causes:
- Invalid account identifier
- Wrong username or password
- Warehouse doesn’t exist or is suspended
- Verify account identifier includes region and cloud (e.g.,
xy12345.us-east-1.aws) - Test credentials in Snowflake web interface first
- Ensure warehouse exists:
SHOW WAREHOUSES; - Resume warehouse if suspended:
ALTER WAREHOUSE your_wh RESUME;
Incorrect username or password
Incorrect username or password
Causes:
- Typo in credentials
- User doesn’t exist
- Password expired
- Verify user exists:
SHOW USERS LIKE 'anomalyarmor%'; - Reset password if needed
- For key-pair auth, verify public key is assigned to user
Account not found
Account not found
Causes:
- Missing region or cloud in account identifier
- Account locator typo
- Get full account identifier from Snowflake URL
- Include region and cloud:
xy12345.us-east-1.aws - Try alternative formats if needed
Warehouse does not exist
Warehouse does not exist
Causes:
- Typo in warehouse name
- User lacks USAGE on warehouse
- Warehouse was deleted
- List warehouses:
SHOW WAREHOUSES; - Grant usage:
GRANT USAGE ON WAREHOUSE wh TO ROLE role; - Check warehouse name is exact match (case-sensitive)
IP address blocked
IP address blocked
Causes:
- Network policy restricting access
- AnomalyArmor IPs not allowlisted
- Check network policies:
SHOW NETWORK POLICIES; - Add AnomalyArmor IPs to allowlist
- Contact your Snowflake admin for policy changes
Role does not exist
Role does not exist
Causes:
- Role typo
- Role was deleted
- User not granted the role
- List roles:
SHOW ROLES; - Check grants:
SHOW GRANTS TO USER your_user; - Grant role:
GRANT ROLE role TO USER user;
No tables found in discovery
No tables found in discovery
Causes:
- User lacks SELECT permissions
- Schema filter excluding all schemas
- Empty database
- Test query as user:
SELECT * FROM your_db.INFORMATION_SCHEMA.TABLES LIMIT 5; - Check grants:
SHOW GRANTS TO ROLE your_role; - Grant SELECT on schemas:
GRANT SELECT ON ALL TABLES IN SCHEMA schema TO ROLE role;
Best Practices
Use Dedicated Service Account
Create a dedicated user for AnomalyArmor rather than using personal accounts:- Dedicated users persist regardless of employee changes
- Easier to audit and manage permissions
- Can be easily rotated or disabled
Use Key-Pair Authentication for Production
Password authentication works but key-pair is more secure:- No password to rotate
- Keys can’t be phished
- Better audit trail
- Supports hardware security modules
Monitor Your Production Database
Start with your production database where schema changes have the most impact:| Priority | Database | Importance |
|---|---|---|
| 1 | Production database | Critical |
| 2 | Staging database | Important |
| 3 | Development databases | Optional |
Choose the Right Warehouse Size
Metadata queries are lightweight. X-Small is sufficient but Small provides faster startup:| Warehouse Size | Credit/Hour | Recommendation |
|---|---|---|
| X-Small | 1 | Development |
| Small | 2 | Production |
Common Questions
How much Snowflake credit does AnomalyArmor consume?
Minimal. Discovery runs metadata queries againstinformation_schema.tables/columns which auto-suspend the warehouse promptly. Typical daily consumption is under 1 credit on an X-Small warehouse. Use a dedicated X-Small warehouse for AnomalyArmor to keep cost visibility clean.
What’s the correct format for the Snowflake account identifier?
Include the fullaccount.region.cloud format (e.g., xy12345.us-east-1.aws), not just the account locator. The URL in your Snowflake web interface shows it: https://app.snowflake.com/<region>/<account>/.... Getting this wrong is the most common first-connect error.
Can AnomalyArmor monitor multiple Snowflake databases (catalogs) with one connection?
Not today. Connect each Snowflake database as a separate data source. A sharedANOMALYARMOR_ROLE with USAGE on multiple databases simplifies permission setup across them.
How do I give AnomalyArmor access to future tables in Snowflake?
UseFUTURE grants: GRANT SELECT ON FUTURE TABLES IN DATABASE <db> TO ROLE ANOMALYARMOR_ROLE (and likewise for FUTURE SCHEMAS and FUTURE VIEWS). New objects inherit SELECT automatically - no re-grant needed after each deploy.
Do I need a separate warehouse for AnomalyArmor, or can it share my existing one?
Sharing works but obscures cost attribution. A dedicated X-Small warehouse withAUTO_SUSPEND = 60 isolates AnomalyArmor’s credit usage and prevents unrelated queries from keeping the warehouse warm longer than needed.
Next Steps
Run Discovery
Scan your Snowflake database
Set Up Alerts
Get notified of schema changes
