Configure Snowflake permissions for Zero Copy segmentation
Learn how to configure and verify the Snowflake permissions required to enable Zero Copy segmentation.
Zero Copy segmentation evaluates segments directly inside your Snowflake instance. To run segmentation securely, grant your segmentation role <role> a specific set of Snowflake permissions that allow the role to read source data from the Snowflake tables that sync with Reltio, create the tables and tasks it needs in a dedicated schema, and write segment results to a shared results table, all within that same Snowflake instance.
Apply these permissions only if you enable segmentation for your Zero Copy integration. If you use Zero Copy integration without segmentation, you don't need these permissions.
Prerequisites
Before you begin, make sure you have the following roles and resources.
Roles you need:
| Role | Used for |
|---|---|
<role>, your segmentation role | The role every permission in this procedure is granted to. This is the same role you created for your Zero Copy integration; segmentation adds permissions to this role rather than requiring a new role. |
SECURITYADMIN, or a custom role with the MANAGE GRANTS permission | Runs every command in this procedure except granting EXECUTE TASK ON ACCOUNT, which requires ACCOUNTADMIN specifically. |
ACCOUNTADMIN | Runs only the command that grants EXECUTE TASK ON ACCOUNT. Snowflake requires this specific role for that account-level permission. |
Resources you need:
- A warehouse and database identified for segmentation.
- A dedicated, empty schema for segmentation, for example
RELTIO_ZEROCOPY, so your segmentation role's access stays limited to the tables it creates and manages.
Throughout this procedure, replace <role> with your segmentation role, and replace <warehouse>, <db>, and <schema> with your warehouse, database, and schema names.
Complete the following procedure in a Snowflake SQL worksheet or the SnowSQL client.
Result
The segmentation role reads source data, creates and runs the objects it needs for segment evaluation, and writes and cleans up results in segment_results, all within the boundaries of your dedicated schema.
Validation
Run the following commands to verify the permissions are in place and segmentation is ready to run.
| Command | Expected result |
|---|---|
SHOW GRANTS TO ROLE <role>; | The output lists every permission granted in this procedure. |
SHOW GRANTS ON SCHEMA <db>.<schema>; | The output includes USAGE, CREATE TASK, CREATE TABLE, CREATE PROCEDURE, and APPLY on tags. |
SHOW GRANTS ON TABLE <db>.<schema>.segment_results; | The output includes SELECT, INSERT, and DELETE. |
SHOW GRANTS ON ACCOUNT; | The output shows EXECUTE TASK granted to <role> with granted_by = ACCOUNTADMIN. |
USE ROLE <role>; DELETE FROM <db>.<schema>."entities" WHERE 1=0; | Fails with SQL access control error: insufficient privileges to operate on table 'entities', confirming the segmentation role has no delete permission on protected tables. |