In this section, we'll take care of having the prerequisites for creating a Snowflake - Seemore integration.
Create a role
💭 Create a role in Snowflake using the following commands:
-- Switch to the ACCOUNTADMIN role to perform administrative tasks such as creating warehouses.USEROLE ACCOUNTADMIN;CREATEORREPLACEROLE seemore_user_role;GRANT OPERATE, USAGE ON WAREHOUSE "<warehouse_name>"TOROLE seemore_user_role;
Replace <warehouse_name> with the default warehouse to use when running the Seemore snowflake "metadata fetcher".
Create a user
To create a user with a password, replace <password> and run the following:
CREATE USER seemore_user password='<password>' default_role=seemore_user_role default_warehouse='<warehouse_name>' display_name='SeemoreData';
2 types of authentication supported - Basic (using password) or Key-pair (using private/public key pair)
Key-pair authentication (optional)
To use key-pair authentication instead of password:
Generate the private key
To start, open a terminal window and generate a private key. You can generate either an encrypted version of the private key or an unencrypted version of the private key. To generate an unencrypted version, use the following command:
ALTERUSER example_user SET RSA_PUBLIC_KEY='MIIBIjANBgkqh...';
For more details access official Snoflake documentation.
Grant role to user
To grant the user_role to the new user:
GRANTROLE seemore_user_role TO USER seemore_user;
Grant Privileges
In order to fetch metadata from snowflake, Seemore needs access only to SNOWFLAKE
-- Grant the role permission to import metadata from the Snowflake database.GRANT IMPORTED PRIVILEGES ONDATABASE SNOWFLAKE TOROLE seemore_user_role;-- Grant the role permission to monitor usage on the entire account.GRANT MONITOR USAGE ON ACCOUNT TOROLE seemore_user_role;
Comprehensive Setup Script
This script encompasses the entire setup process, including creating a dedicated warehouse for Seemore, establishing roles, creating a user, and assigning the necessary privileges for operations and monitoring. Please make sure to replace <Your Password>.
If you don't need the warehouse just comment out the (lines 8-19), and replace seemore_warehouse (line 26) with your warehouse.
-- Switch to the ACCOUNTADMIN role to perform administrative tasks such as creating warehouses.USEROLE ACCOUNTADMIN;SET var_password ='<Your Password>';-- Optionally create a new warehouse named "seemore_warehouse" if it does not already exist.-- The warehouse is set to 'XSMALL' size, with auto-suspension after 60 seconds of inactivity.-- It's initially suspended to avoid unnecessary costs. A comment is added for clarity.CREATE WAREHOUSE IFNOTEXISTS seemore_warehouse WAREHOUSE_SIZE='XSMALL' AUTO_SUSPEND=60 INITIALLY_SUSPENDED=TRUE COMMENT ='Used by seemore';CREATEORREPLACERESOURCE MONITOR seemore_monitorWITH CREDIT_QUOTA =25 FREQUENCY ='MONTHLY' START_TIMESTAMP ='IMMEDIATELY' TRIGGERS ON100 PERCENT DO SUSPEND;-- Replace YOUR_PREFERRED_WAREHOUSE_NAME with the name of your warehouseALTER WAREHOUSE seemore_warehouse SET RESOURCE_MONITOR = seemore_monitor;-- Create a new role for the seemore user. This role will manage permissions for the seemore user.CREATEORREPLACEROLE seemore_user_role;-- Grant the new role permissions to operate and use the "seemore_warehouse".GRANT OPERATE, USAGE ON WAREHOUSE seemore_warehouse TOROLE seemore_user_role;-- Create a new user named "seemore_user" with the specified settings.-- The user's default role and warehouse are set to "seemore_user_role" and "seemore_warehouse", respectively.CREATE OR REPLACEUSERseemore_userPASSWORD= $var_password DEFAULT_ROLE = seemore_user_role DEFAULT_WAREHOUSE ='seemore_warehouse' DISPLAY_NAME ='SeemoreData';-- Grant the previously created role to the seemore user.GRANTROLE seemore_user_role TO USER seemore_user;-- Grant the role permission to import metadata from the Snowflake database.GRANT IMPORTED PRIVILEGES ONDATABASE SNOWFLAKE TOROLE seemore_user_role;-- Grant the role permission to monitor usage on the entire account.GRANT MONITOR USAGE ON ACCOUNT TOROLE seemore_user_role;
Allowlist the Seemore IP
If you are using the IP allowlist in your Snowflake instance, you must add the Seemore IP to the allowlist.
(If you are not using the IP Allowlist in your Snowflake instance, you can skip this step.)