While in general it's easiest to get started with hyperquery by simply using any existing account that can query tables, it can be cleaner to create a dedicated Snowflake account for us to use with a dedicated role. We'll go through the following steps here:

  1. Create a new role and a new user.
  2. Create a new warehouse [optional].

We'll provide you a series of commands that can be executed in the Snowflake console to accomplish this. Remember to run all of the commands - by default the "Run" button in the Snowflake GUI will only run the query that is beneath the cursor (each of the following code blocks is comprised of multiple queries!).

πŸ†• Create a new role and user

We'll start by creating a new role, hq_role. Modify the password field below before executing.

use role accountadmin;

create role if not exists hq_role;
grant role hq_role to role SYSADMIN;

create user if not exists hq_user
password = '<enter password here>';

grant role hq_role to user hq_user;
alter user hq_user
set default_role = hq_role;

πŸ“– Grant access to your new role

The following will grant two kinds of privileges: USAGE and SELECT. Read more about Snowflake privileges here.

grant usage on database <your_database> to role hq_role;
grant usage on future schemas in database <your_database> to role hq_role;
grant select on future tables in database <your_database> to role hq_role;

Depending on how you want to use hyperquery, you may want to add additional privileges -- users commonly grant update and create permissions as well.
See this article if you want to add schema-level (or tighter) restrictions at the Snowflake-level.

🏒 Create a new warehouse [optional]
You're welcome to use an existing warehouse, but if you'd like to customize the experience for your team, you can create a new warehouse as follows below. Make sure to customize the size of the warehouse.

create warehouse if not exists hq_wh
warehouse_size = small
warehouse_type = standard
auto_suspend = 1800
auto_resume = true
initially_suspended = true;

grant all privileges
on warehouse hq_wh
to role hq_role;

You should be good to go!
To connect this warehouse, specify the following details in your warehouse connection, along with your other connection details.

username: hq_user
warehouse: hq_wh

Feel free to reach out to us on slack, email, or intercom if you have any questions. We're here to help!