Use this connector to have Foundational scan and determine lineage and downstream impact for Snowflake.
This setup should take about 15 minutes.
Permissions: You need to be a Snowflake admin for some parts of this setup.
Create an RSA key-pair
Generate an encrypted private key by running the following in command line:
$ openssl genrsa 2048 | openssl pkcs8 -topk8 -v2 des3 -inform PEM -out rsa_key.p8
Generate the public key by then running this command:
$ openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub
Copy both keys to a local directory for storage and record the path (it will be used later).
Assign the public key to a Snowflake user (Only Snowflake admins can do this):
ALTER USER [Username] SET RSA_PUBLIC_KEY='[Public key string]';
Verify the user has the key assigned to them by running DESCRIBE USER:
DESCRIBE USER [Username]
For further details, see the Snowflake guide on how to create key pair
Create a role in Snowflake for Foundational, and assign it to Foundational user
This can be done by downloading the attached script, snowflake_permissions.sql
In the script, make the following changes:
Replace
<your-warehouse>
with the warehouse you want Foundational to run its extraction queries in
βNote: Foundational will extract information for all warehouses, but run its query within the warehouse you specified)If the user you created for Foundational is not named
foundational_user
, then replace this string with the user name you created.β
Why do we ask for these permissions?
DB level
OBJECT_VIEWER
,USAGE_VIEWER
andGOVERNANCE_VIEWER
are required to extract lineage from your snowflake database.DB level
usage
and table/schema levelreferences
permissions allow us to extract more detailed schema definitionsWarehouse
operate
andusage
are needed for us to run queries that extract these pieces of information
Fill in the relevant information in Foundational
In the Connectors page, click on Snowflake to configure the following:
Account URL: This is the URL you use to access Snowflake. It follows this format:
https://<Snowflake-Account-Id>.snowflakecomputing.com
Warehouse Name: The name of the warehouse you used in the script
Database Name: The name of the database you used in the script
Ingestion Role: The name of the role that was created in the script
User name: The name of the user that was created in the script
Private Key: The encrypted private key (starts with:
"-----BEGIN ENCRYPTED PRIVATE KEY-----"
)Private Key Passphrase: The password for the encrypted private key