Querio
Connect your dataSupported integrations

Snowflake

Connect Snowflake to Querio.

Before you start

You need a Snowflake admin role that can create users, roles, and grants. You also need the RSA public key Querio will use for key-pair authentication.

1. Create a service user

What: Create a non-human Snowflake user for Querio.

CREATE USER QUERIO_SVC
  LOGIN_NAME = QUERIO_SVC
  TYPE = SERVICE
  DEFAULT_ROLE = QUERIO_ROLE
  DEFAULT_WAREHOUSE = QUERIO_WH
  DEFAULT_NAMESPACE = MY_DATABASE.PUBLIC
  COMMENT = 'Service user for Querio integration';

2. Create a least-privilege role

What: Give Querio only the permissions it needs.

CREATE ROLE IF NOT EXISTS QUERIO_ROLE;

GRANT USAGE ON WAREHOUSE QUERIO_WH TO ROLE QUERIO_ROLE;
GRANT USAGE ON DATABASE MY_DATABASE TO ROLE QUERIO_ROLE;
GRANT USAGE ON SCHEMA MY_DATABASE.PUBLIC TO ROLE QUERIO_ROLE;

GRANT SELECT ON ALL TABLES IN SCHEMA MY_DATABASE.PUBLIC TO ROLE QUERIO_ROLE;
GRANT SELECT ON ALL VIEWS IN SCHEMA MY_DATABASE.PUBLIC TO ROLE QUERIO_ROLE;
GRANT SELECT ON FUTURE TABLES IN SCHEMA MY_DATABASE.PUBLIC TO ROLE QUERIO_ROLE;
GRANT SELECT ON FUTURE VIEWS IN SCHEMA MY_DATABASE.PUBLIC TO ROLE QUERIO_ROLE;

GRANT ROLE QUERIO_ROLE TO USER QUERIO_SVC;

Scope these grants to the databases and schemas Querio should read.

3. Add the RSA public key

What: Register the public key on the service user.

ALTER USER QUERIO_SVC SET RSA_PUBLIC_KEY='MIIBIjANBgkqh...';
DESC USER QUERIO_SVC;

Snowflake expects the base64 content of the public key without the BEGIN PUBLIC KEY and END PUBLIC KEY lines.

4. Share the connection metadata

Provide the account, user, warehouse, database, schema, and role to Querio.

{
  "account": "orgname-account_name",
  "user": "QUERIO_SVC",
  "warehouse": "QUERIO_WH",
  "database": "MY_DATABASE",
  "schema": "PUBLIC",
  "role": "QUERIO_ROLE"
}