Secure Data Sharing

Snowflake Management, Governance & Collaboration

Emily Melhuish

Technical Curriculum Developer, Snowflake

Problem with Traditional Data Sharing

traditional_problem.png

Snowflake Management, Governance & Collaboration

How Snowflake Sharing Works

Diagram showing traditional data pipeline with extract, transfer, and load steps between two organizations

data_sharing_v3.png

Snowflake Management, Governance & Collaboration

Creating The Share

CREATE SHARE claro_credit_risk_share; -- Step 1

GRANT USAGE ON DATABASE credit_risk_db -- Step 2
  TO SHARE claro_credit_risk_share;
GRANT USAGE ON SCHEMA credit_risk_db.analytics
  TO SHARE claro_credit_risk_share;
GRANT SELECT ON TABLE credit_risk_db.analytics.risk_summary
  TO SHARE claro_credit_risk_share;

ALTER SHARE claro_credit_risk_share -- Step 3
  ADD ACCOUNTS = partner_bank.eu_west;
Snowflake Management, Governance & Collaboration

Mounting a Share

-- Consumer creates a database from the share
CREATE DATABASE claro_shared_data
  FROM SHARE claro.eu_west.claro_credit_risk_share;

-- Query it like any other database
SELECT *
FROM claro_shared_data.analytics.risk_summary;
Snowflake Management, Governance & Collaboration

Reader Accounts

  • Not every partner has a Snowflake account
  • Claro creates a reader account on the partner's behalf
  • Partner queries the share with provided credentials
  • Trade-off: Claro pays for the reader's compute

Secure data sharing.png

Data sharing.png

Snowflake Management, Governance & Collaboration

Secure Views in Sharing

  • Default: SECURE_OBJECTS_ONLY = TRUE Side-by-side comparison showing a standard view exposing its SQL definition versus a secure view hiding it from the consumer

  • While not recommended, you can set SECURE_OBJECTS_ONLY = FALSE

1 https://docs.snowflake.com/en/user-guide/data-sharing-secure-views
Snowflake Management, Governance & Collaboration

Let's practice!

Snowflake Management, Governance & Collaboration

Preparing Video For Download...