Connect Datawise to Postgres to enable Schema Radar detection and warehouse-level lineage.
Prerequisites
- A Postgres user with
SELECT privileges on information_schema and on the tables and views you want Datawise to track.
- The hostname (or IP) and port for your Postgres instance.
- The database name you want to connect.
Create a dedicated read-only Datawise user in Postgres rather than using an existing account.
Required Permissions
Datawise only reads schema metadata and does not access the data in your tables. Grant access only to the schemas you want Datawise to monitor. You can use the allow and deny pattern filters in the connector form to further control what gets ingested.
Option 1: All schemas (easiest, good for initial setup)
CREATE USER datawise_user WITH PASSWORD 'your_password';
GRANT CONNECT ON DATABASE your_database TO datawise_user;
GRANT USAGE ON SCHEMA public TO datawise_user;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO datawise_user;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO datawise_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT ON TABLES TO datawise_user;
Option 2: Specific schemas only (recommended for production)
CREATE USER datawise_user WITH PASSWORD 'your_password';
GRANT CONNECT ON DATABASE your_database TO datawise_user;
-- Grant access to specific schemas only
GRANT USAGE ON SCHEMA <your_schema> TO datawise_user;
GRANT SELECT ON ALL TABLES IN SCHEMA <your_schema> TO datawise_user;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA <your_schema> TO datawise_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA <your_schema>
GRANT SELECT ON TABLES TO datawise_user;
-- Repeat for each schema you want Datawise to monitor
For production environments, use Option 2. Grant Datawise access only to the schemas you want monitored. This follows the principle of least privilege and limits Datawise’s footprint to exactly what your team has decided to track. You can always add more schemas later by running additional GRANT statements.
Connection Setup
Go to Connectors, click Add Connector, and select Postgres.
Required Fields
| Field | Description |
|---|
| Host and Port | Hostname and port. Format: hostname:port. Default Postgres port is 5432. |
| Username | The Postgres user Datawise connects as. |
| Password | Password for the above user. |
| Database | The Postgres database to connect. |
| Name | A display name for this connector in Datawise. |
Filters
| Scope | Field | Description |
|---|
| Schemas | Allow Patterns | Only ingest matching schemas. |
| Schemas | Deny Patterns | Exclude matching schemas. |
| Tables | Allow Patterns | Only ingest matching tables. |
| Tables | Deny Patterns | Exclude matching tables. |
| Views | Allow Patterns | Only ingest matching views. |
| Views | Deny Patterns | Exclude matching views. |
Patterns use glob syntax (e.g., prod_*). Leave all fields empty to ingest everything the user has access to.
Settings
| Setting | Default | Description |
|---|
| Include Tables | On | Ingest table metadata and schema. |
| Include Views | On | Ingest view metadata. |
| Enable Table Profiling | Off | Collect row counts and basic statistics per table. |
| Enable Column Profiling | Off | Collect column-level statistics. Increases query load. |
| Enable Stateful Ingestion | Off | Process only new or changed assets on subsequent runs. |
Schedule
| Field | Description |
|---|
| Run on a schedule | Recommended. |
| Schedule | Cron-style schedule. Default: every day at 00:00. |
| Timezone | The timezone used to evaluate the schedule. |
Testing the Connection
If the test fails, check:
- That the hostname and port are reachable from Datawise. If your Postgres instance is behind a VPC or firewall, contact support for the current Datawise IP allowlist range.
- That the user exists and the password is correct.
- That the user has been granted
CONNECT on the target database.
After Connecting
- Tables and views from the connected schemas appear in Data Assets.
- Schema Radar begins detecting schema changes on your configured schedule.
- Lineage from Postgres populates when dbt Cloud is also connected and targeting the same Postgres instance.