Skip to main content

Requirements

To follow the steps in this guide, you’ll need:
  • Organization Admin permissions in Omni
  • Permissions in Redshift that allow you to create database users and grant permissions

Setup

1

Create a database user for Omni

In your Redshift database, run the following command to create a database user for Omni:
Create an Omni database user
Next, run the following command for each schema you want to use in Omni:
Grant Omni access to schemas
If you’re using Redshift views via dbt, Omni may not be granted permissions if there are dependencies with other schemas. To grant access to those views, you’ll also need to grant SELECT access to the views. If objects are declared as tables, they will be available in Omni.
2

Set up a table upload schema

This step is optional. However, we recommend completing it as part of the initial set up or you won’t be able to use uploaded files like CSVs in joins.
In this step, you’ll create a dedicated schema to use for table uploads. This schema can’t be used for other modeled tables.
  1. Create the schema in Redshift.
  2. Run the following to grant the Omni user the required privileges:
    Grant Omni access to table upload schema
3

Allowlist Omni's IP addresses

If access to the Redshift database is limited by IP address, you’ll need to add Omni’s IPs to the allowlist before you create the database connection. For Redshift, this typically means creating a security group and adding an inbound traffic rule for each IP address.Omni’s IP addresses can be found on an individual connection’s page, accessed by navigating to Settings > Connections and clicking a connection.
4

Create the connection in Omni

  1. In Omni, click Settings > Connections.
  2. Click the Redshift option.
  3. On the connection setup page, fill in the connection details:
  4. When finished, click Create connection.

Connecting to Redshift datashares

Redshift data sharing lets you share data across Redshift databases and clusters. To make datashare tables available in Omni, you need to create an external schema in the database Omni connects to and grant the Omni user access to it.

Create an external schema

In the consumer database (the one Omni connects to), run:
Create an external schema for the datashare
Replace the following placeholders:
  • <external_schema_name> — the name the schema will have in your local database
  • <datashare_database_name> — the name of the shared database
  • <source_schema_name> — the schema within the shared database to expose

Grant the Omni user access

Grant the Omni user usage on the external schema:
Grant schema access to the Omni user
If the datashare was created with the WITH_PERMISSIONS flag, you also need to grant usage on the shared database:
Grant database access (WITH_PERMISSIONS datashares only)

Verify Omni can see the tables

To confirm the external schema and its tables are visible to the Omni user, run the following queries as the Omni user:
Verify table visibility
Verify column visibility
If both queries return rows, Omni will be able to discover and model the datashare tables.

What’s next?

Now that your database is set up, you can: