diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml index 8fcf0bfa3e..ca54f8f1a6 100644 --- a/src/_data/sidenav/main.yml +++ b/src/_data/sidenav/main.yml @@ -210,6 +210,8 @@ sections: title: BigQuery Reverse ETL Setup - path: /connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup title: Databricks Reverse ETL Setup + - path: /connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup + title: Db2 Reverse ETL Setup - path: /connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup title: Postgres Reverse ETL Setup - path: /connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md new file mode 100644 index 0000000000..915a9d71bc --- /dev/null +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -0,0 +1,69 @@ +--- +title: Db2 Reverse ETL Setup +--- + +Set up Db2 as your Reverse ETL source. + +At a high level, when you set up Db2 for Reverse ETL, the configured database user must have read permissions on any tables involved in the query and write permissions on a managed schema (`SEGMENT_REVERSE_ETL`) that Segment uses to track sync progress. Segment authenticates with your Db2 instance through a username and password. + + + +## Required permissions + +In order to run a Reverse ETL sync in your Db2 warehouse, you'll create a user with the following permissions: + +* **Permission to read from all tables used in the model**: The user must be able to access all tables included in your SELECT query. +* **Permission to create and manage a schema**: Segment creates and manages a schema in your warehouse to track sync metadata. +* **Permission to create tables in the database**: Segment creates metadata tables in your warehouse. + + +> info "Create a dedicated user for Segment's Reverse ETL connection" +> Segment recommends that you create a dedicated Db2 user for when setting up Reverse ETL. This user should only have access to the relevant schemas and tables you'll need to access during syncs between Segment and your warehouse. + +1. In IBM Cloud, go to your Db2 instance and navigate to **Administration > User management**. +2. Click **Add**. +3. Create a new user with *user* privileges. Note the username and password of the user you created, as you'll need this information to set up the Segment source connection in a later step. + + +> info "" +> Segment creates and manages the `SEGMENT_REVERSE_ETL` schema to track the status of each sync. +> You can also choose to create this schema yourself by running: +> `CREATE SCHEMA SEGMENT_REVERSE_ETL` +> After you've created the schema, grant Segment the appropriate privileges. + + + +Run the following SQL commands to grant Segment the required permissions: + +```sql +-- Grant permissions to create and manage objects within the SEGMENT_REVERSE_ETL schema +GRANT CREATEIN, DROPIN ON SCHEMA SEGMENT_REVERSE_ETL TO USER ; + +-- Grant permission to create tables in the database +GRANT CREATETAB ON DATABASE TO USER ; + +-- Grant read access on each table used in the model +GRANT SELECT ON TABLE . TO USER ; +-- Repeat the above command for all tables involved in your model +``` + + +## Set up guide + +To set up Db2 as your Reverse ETL source: + +1. Confirm that your Db2 database is network-accessible from the [IP address that Segment uses to connect to your warehouse](/docs/connections/storage/warehouses/faq/#which-ips-should-i-allowlist). +2. Open [your Segment workspace](https://app.segment.com/workspaces){:target="_blank"}. +3. Navigate to **Connections > Sources** then select the **Reverse ETL** tab. +4. Click **+ Add Reverse ETL source**. +5. Select **Db2** and click **Add Source**. +6. Fill in the following Db2 connection settings: + * Hostname: `` + * Port: `` + * Database: `` + * Username: `` + * Password: `` +7. Click **Test Connection** to validate the setup. +8. If the connection is successful, click **Add source**. + +After successfully adding your Db2 source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide. diff --git a/src/connections/reverse-etl/setup.md b/src/connections/reverse-etl/setup.md index 0fdd98bd7c..4172e6e281 100644 --- a/src/connections/reverse-etl/setup.md +++ b/src/connections/reverse-etl/setup.md @@ -28,6 +28,7 @@ To add your warehouse as a source: - [Azure Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/azure-setup) - [BigQuery Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup) - [Databricks Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup) + - [Db2 Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup) - [Postgres Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup) - [Redshift Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup) - [Snowflake Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup)