To allow Integrate.io ETL access to Snowflake
In order to allow Integrate.io ETL access to your Snowflake account, login to your Snowflake account using your favorite SQL client and execute the following commands to create a user with proper permissions for Integrate.io ETL:
USE ROLE accountadmin; -- use this role to be able to grant permissions
CREATE ROLE integrate_io; -- create a role to assign to the integrate_io user
CREATE USER integrate_io PASSWORD='<password>' DEFAULT_ROLE = integrate_io; -- create a user with a password
GRANT ROLE integrate_io TO USER integrate_io; -- assign user to role
-- run the following statements for each database you'd like Integrate.io ETL to access:
GRANT USAGE ON DATABASE "<database_name>" TO ROLE integrate_io; -- grant database access to integrate_io
GRANT CREATE SCHEMA ON DATABASE "<database_name>" TO ROLE integrate_io; -- grant schema creation privilege to integrate_io
GRANT ALL ON SCHEMA "<schema_name>" TO ROLE integrate_io; -- grant integrate_io privileges to do anything within the defined schema
GRANT ALL ON SCHEMA public TO ROLE integrate_io;
GRANT ALL ON ALL TABLES IN SCHEMA "<database_name>"."<schema_name>" TO ROLE integrate_io; -- grant integrate_io privileges to all tables in the schema
-- run the following statements for each warehouse you'd like Integrate.io ETL to use:
GRANT ALL ON WAREHOUSE "<warehouse_name>" TO integrate_io; -- allow integrate_io to use a warehouse
To create a Snowflake connection in Integrate.io ETL
- Click the Connections icon (lightning bolt) on the top left menu.
- Click New connection.
- Choose Snowflake.
- Type a name for the connection.
- Enter your account name (e.g. integrate.io ETL if you login to integrate.io ETL.snowflakecomputing.com)
- Enter the user name and password you created for Integrate.io ETL to use.
- Enter the default database to use.
- Enter the default warehouse to use.
- Set the region to your Snowflake's account's region.
- Click Test Connection. If the credentials are correct, a message that the connection test was successful appears.
- Create Connection.
Identifier names
Integrate.io ETL uses quoted identifiers which means that by default, all identifiers (table and column names for instance) are case sensitive - as opposed to non-quoted identifiers which are case insensitive (and are stored in upper case). You may want to change the behavior by changing the QUOTED_IDENTIFIERS_IGNORE_CASE
setting for Integrate.io ETL's user or for your entire account. Note that tables and columns that were created with case sensitive names remain case sensitive, so it's important to make this change before you create any tables. If you want to switch a case sensitive identifier name to a case insensitive identifier name after it's been created use the ALTER ... RENAME
clauses in Snowflake. Read more on Snowflake identifiers for more information.