Connecting
You’ll create a dedicated user in Snowflake, grant it access to the warehouse and data you want Evidence to read, then enter the credentials in Evidence.Prerequisites
- A Snowflake account with a warehouse and at least one database you want Evidence to query.
- A user with
SECURITYADMINandSYSADMIN(orACCOUNTADMIN) to run the setup SQL.
1. Create a role and user for Evidence
If you already have a read-only user suitable for BI workloads, skip to step 2. Otherwise, run the following, replacing<warehouse>, <database>, <schema>, and <strong-password> with your own values:
SQL to create user
SQL to create user
PASSWORD = '<strong-password>' line with RSA_PUBLIC_KEY = '<your-public-key>'. See the Snowflake docs on key-pair authentication for how to generate the key.2. Configure the connector in Evidence
1
Open the connectors page
Go to Connectors in the sidebar. In the Warehouse card at the top, select Snowflake.
2
Enter connection details
Fill in the form with the credentials of the user you created.
3
Test and save
Click Test Connection. Once it passes, click Save.
Configuration reference
- Studio
- CLI (connection.yaml)
Row-Level Security
Documentation for RLS is not yet available for Snowflake. Please contact support to set up RLS with the Snowflake direct connector.Embedded viewers
For embedded analytics, every entry in the embed request’sattributes array becomes a Snowflake session variable for that viewer’s queries. Evidence runs SET before each query and clears the variables afterwards, so one viewer’s values never carry over to another viewer.
GETVARIABLE. An attribute that wasn’t sent returns NULL, so the policy fails closed:
- Keys must contain only letters, digits, and underscores, and can’t be a Snowflake reserved keyword. Snowflake upper-cases unquoted names, so
tenant_idis read asGETVARIABLE('TENANT_ID'). - Arrays arrive as a JSON string, e.g.
ARRAY_CONTAINS(region::VARIANT, PARSE_JSON(GETVARIABLE('REGIONS'))). - Values are limited to 256 bytes by Snowflake.
- Attributes that break these rules are skipped, and the policy sees them as unset.
- A configured session variable mapping with the same name takes precedence over an attribute.

