Snowflake Shares

EARLY ACCESS

Harbr enables you to share Products and Assets held in Snowflake directly with another Snowflake account, using a Snowflake-to-Snowflake share. The recipient reads the live data from within their own Snowflake account. No data is copied.

A Snowflake share can be created to provide access to all eligible assets within a Data Product, or to a single Asset.

Please contact your Harbr Account Manager if you are interested in setting up this feature.

Key features of Snowflake shares:

  • Same cloud and region: the recipient's Snowflake account must be in the same cloud provider and region as the shared data.

  • Shared with a Snowflake account: you enter the recipient's Snowflake account in the form ORG.ACCOUNT.

  • The recipient creates a database from the share: the recipient runs a short SQL statement in their Snowflake account to create a database from the share. Until they do, the share does not appear in their account.

  • One database per share: all tables in a share must come from one Snowflake database.

  • Tables and secure views only: file assets and ordinary (non-secure) views cannot be included in a Snowflake share.

  • Access by account: access is granted to the recipient's Snowflake account, so there are no tokens to manage, rotate or expire.

  • No IP access restrictions: IP access restrictions are not applied to Snowflake shares.

  • One recipient account per share.

  • No row or column filters: row and column filters are not supported for Snowflake shares.

For an overview of all types of data share, see Data Sharing.

Prerequisites

Provider

  • A Snowflake (new) connector. See Snowflake for set-up guidance.

  • The connector's role must hold the CREATE SHARE privilege. The connector's capability check verifies this. If the privilege is missing, the check fails and shows the permission and the GRANT statement to run.

  • Assets created at source from the Snowflake (new) connector. Only assets that support Snowflake sharing can be included in a Snowflake share.

Recipient

  • A Snowflake account in the same cloud provider and region as the shared data.

  • A user in that account with the IMPORT SHARE and CREATE DATABASE privileges, to create a database from the share.

Create a Snowflake Share

  1. Start the share in one of two ways:

    • Click Data sharing in the navigation bar, then click Create data share, or

    • Go to My Collection, click the three dot menu for a Product or Asset and select Create data share.

  2. If you started from Data sharing, select the Product or Asset you wish to share.

  3. Under Choose a sharing method, select Create a Snowflake-to-Snowflake share. Sharing methods that the selected data does not support are disabled.

  4. Review What will be in this share. This lists the assets that will be included and the assets that will be left out.

  5. Enter a Share name.

  6. Enter the recipient's Snowflake account in the form ORG.ACCOUNT. The helper text shows the cloud and region the recipient's account must be in.

  7. Click Create share.

The recipient can find their account name by running the following in their Snowflake account:

SELECT CURRENT_ORGANIZATION_NAME() || '.' || CURRENT_ACCOUNT_NAME();

Confirmation

Once the share is created, the confirmation shows:

  • The share identifier

  • The recipient's Snowflake account

  • The share status (Pending)

  • The SQL the recipient runs to create a database from the share, with a copy button

  • The tables included in the share

  • A link to Snowflake's documentation

Send the share identifier and SQL to your recipient.

Products with a Mix of Assets

When you share a Product, only the assets that support Snowflake sharing are included. Before you create the share, the What will be in this share section lists which assets are included and which are left out.

When the Product is re-released, the contents of the share are updated to match. An asset added to the Product later that supports Snowflake sharing is added to the share.

Access a Snowflake Share (Recipient)

A user with the IMPORT SHARE and CREATE DATABASE privileges in the recipient's Snowflake account creates a database from the share, using the share identifier provided:

CREATE DATABASE <database_name> FROM SHARE <share_identifier>;
GRANT IMPORTED PRIVILEGES ON DATABASE <database_name> TO ROLE <role_name>;

The second statement is optional, and gives other users with that role access to the shared data.

See Snowflake's Introduction to Secure Data Sharing for further information.

Manage a Snowflake Share

Share Status

Snowflake shares are listed on the Data sharing page alongside Databricks shares, with the recipient's Snowflake account shown as the target.

  • Pending: the share has been created, but the recipient has not yet created a database from it.

  • Active: the recipient has created a database from the share.

Delete a Snowflake Share

  1. Click Data sharing in the navigation bar.

  2. Click the three dot menu for the share and select Delete.

  3. Confirm the deletion.

Deleting a Snowflake share removes the recipient's access immediately and cannot be undone. If a share is recreated, the recipient must create a database from the new share again.

FAQs and Troubleshooting

  1. The share fails because of the recipient's region.

The recipient's Snowflake account is not in the same cloud and region as the shared data. Ask the recipient to run SELECT CURRENT_REGION(); in their account to check. A Snowflake-to-Snowflake share only works between accounts in the same cloud and region.

  1. The share fails because the tables are in more than one database.

All tables in a Snowflake share must come from one Snowflake database. The error names the databases involved. Share a Product or Asset whose tables are all in one database.

  1. The recipient account is not accepted.

Check the account is entered in the form ORG.ACCOUNT.

MCP Access

Snowflake shares are also supported by The Harbr MCP. See Using the Harbr MCP.