What you will be able to do
- Import an inbound share with CREATE DATABASE ... FROM SHARE and grant access through IMPORTED PRIVILEGES or shared database roles
- Create, configure, monitor and drop reader accounts for consumers without a Snowflake account
- Install the Snowflake Data Clean Rooms environment, give users access, and bring collaborators into a clean room
1.Importing and maintaining an inbound share
On the consumer side, a share becomes usable only when you create a database from it. This is the one CREATE DATABASE that stores nothing: the imported database is a read-only window onto the provider's data and takes no storage in your account. The role that runs the command needs the global CREATE DATABASE and IMPORT SHARE privileges. Each share can back only one database.
SHOW DATABASE ROLES in DATABASE c1;
GRANT DATABASE ROLE c1.r1 TO ROLE analyst;How you grant access depends on how the provider built the share. If objects were granted directly to the share, you grant one privilege, IMPORTED PRIVILEGES, on the imported database. That is all or nothing: every holder sees every object. Only a role that owns the imported database, or holds MANAGE GRANTS, can grant it. If the provider used database roles, you grant each shared database role to the local roles that need it, which gives different groups different subsets of the data.
After import, consumers can create streams on shared tables or secure views, but only if the provider has turned on change tracking. A stream on shared data does not extend the provider's retention period, so consume the stream within that window. Direct shares can be reshared only within the consumer's organization. To reshare, build a secure view in your own database over the imported data, because objects from an imported database cannot be attached to a share directly.
Checkpoint 1 of 5· Check yourself
A consumer imports a share whose objects were granted directly to it (no database roles). The analysts should see only some of the tables. What can the consumer do?
Without database roles, IMPORTED PRIVILEGES gives access to every object in the share, and only one database can be created per share.
“There is no option to allow different groups of users in a data consumer account to access a subset of the shared objects.”Source: docs.snowflake.com
2.Reader accounts for consumers without Snowflake
Sharing works only between Snowflake accounts. For a consumer who has no account, the provider can create a reader account, also called a managed account. The provider creates, owns and pays for it, and the reader account can consume data only from that provider. It uses the provider's edition and region. Creating one requires ACCOUNTADMIN or a role with the global CREATE ACCOUNT privilege. ACCOUNTADMIN can delegate the task by granting CREATE ACCOUNT to a role such as SYSADMIN.
Checkpoint 2 of 5· Fill the gap
Complete the command that creates a reader account.
CREATE MANAGED ACCOUNT <account_name>
ADMIN_NAME = <username> , ADMIN_PASSWORD = '<password>' ,
TYPE = ? ;Reader accounts are MANAGED ACCOUNT objects created with TYPE = READER. The ADMIN_NAME user becomes the account's administrator.
Source: docs.snowflake.comThe command returns the account name and login URL. Wait up to five minutes for provisioning, then add the account to one or more shares and configure it. The documented user and role setup is limited to the administrator named in ADMIN_NAME/ADMIN_PASSWORD plus the instruction to configure the account. These sources give no further steps for users and roles inside a reader account.
Cost control is the provider's job. Reader-account warehouses can use unlimited credits, all billed to the provider. Set up a resource monitor on each warehouse to cap them. The sources say to do this but give no resource monitor syntax.
What users can do. Reader accounts are mainly for querying shared data. Users can still create objects, for example materialized views. They cannot load or change data: INSERT, UPDATE, DELETE, MERGE, COPY INTO <table>, CREATE STAGE, CREATE PIPE and CREATE SHARE are all blocked. Masking and row access policies cannot be created, and dynamic table refreshes fail. Reader-account users get no Snowflake support, so the provider answers their questions.
Lifecycle. A provider can have 75 reader accounts by default. List them with SHOW MANAGED ACCOUNTS, or query the READER_ACCOUNT_USAGE schema in the SNOWFLAKE database. DROP MANAGED ACCOUNT deletes everything in the account and cannot be undone. A dropped account still counts against the limit for 7 days.
Checkpoint 3 of 5· Exam question
A provider in AWS us-east-1 must share a database with a customer whose Snowflake account runs on Azure West Europe. Both parties want a direct share, not a listing. Select TWO actions that the provider should take.(Select 2)
Correct answers: A, C — Enable replication of the database to a provider-owned Azure West Europe account with ALTER DATABASE ... ENABLE REPLICATION; Create the share on the replicated database in the Azure account, then add the customer's account to that share
- A. Correct. Shares cannot span regions or clouds directly, so the data must first be replicated to an account in the consumer's region and cloud. Database replication is the supported mechanism.
- B. Incorrect. Cloning is a zero-copy operation limited to a single account; it cannot produce a copy in another region or cloud.
- C. Correct. Once the secondary database exists in the consumer's region, the provider creates the share there and adds the consumer account with ALTER SHARE. Refreshes of the replica keep the shared data current.
- D. Incorrect. Direct shares only work within the same region and cloud platform. Automatic cross-cloud routing exists only for listings with auto-fulfillment.
- E. Incorrect. Reader accounts are for consumers without a Snowflake account and share the provider's region and cloud, so they do not solve cross-cloud sharing for an existing customer.
Checkpoint 4 of 5· Check yourself
A provider's reader account has run up a large credit bill. Who pays, and what is the documented control?
The provider owns the reader account and is charged for its credits. A resource monitor on the warehouse limits usage.
“To limit usage, set up a resource monitor for the warehouse.”Source: docs.snowflake.com
Sources3
3.Snowflake Data Clean Rooms: install, users and collaborators
A clean room goes beyond a share. Collaborators can bring data together while the owner controls exactly which analyses can run against it. Joining is the first gate, and it depends on account type and edition. Owners and analysis runners need Standard Edition or higher. Data providers, and anyone activating data to another collaborator, need Enterprise Edition or higher. Reader accounts cannot install clean rooms at all.
Install the native app. As ACCOUNTADMIN, install the Snowflake Data Clean Rooms application from the Snowflake Marketplace. The installing user must have a first name, last name and verified email. Then open the app (Catalog » Apps » Snowflake Data Clean Rooms), choose Open in Worksheet, and run the script that installs the clean rooms API. The UI depends on this API too. Finally, check the mount:
USE ROLE SAMOOHA_APP_ROLE; USE WAREHOUSE app_wh; CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.LIBRARY.CHECK_MOUNT_STATUS();Bring users in. Installation covers the whole account, but nobody gets access automatically. A clean rooms administrator must grant access explicitly, by granting roles to developers so they can work with clean room environments. Clean rooms can also be shared only within the same cloud region by default. To work with collaborators elsewhere, enable Cross-Cloud Auto-fulfillment for the account.
Manage collaborators. In the current collaboration model, each region has a Secure Collaboration Orchestrator (SCO) account. The owner's region decides which SCO runs a collaboration. For each collaboration, the SCO publishes an app package and a listing. Each collaborator installs SFDCR_collaboration_name from that listing. Collaborators then contribute data offerings, and the SCO enforces the collaboration definition: who can use which data with which templates, and what can be activated to whom. The older Provider/Consumer clean rooms UI, which is being discontinued, has an administrator add each collaborator under Collaborators with a company name, email, account locator, cloud and region. Only then can users share a clean room with that collaborator.
Checkpoint 5 of 5· Check yourself
A partner wants to join your collaboration as a data provider, using the reader account you created for them. What happens?
Reader accounts are excluded because they lack the data sharing the clean rooms app requires. The partner needs a full account, and to be a data provider, an Enterprise Edition or higher one.
“Reader accounts are not supported, because reader accounts do not allow the data sharing required to install and run the clean rooms application.”Source: docs.snowflake.com
Exam traps
Each one states something that sounds right. Open it to see what is actually true.
1.A consumer can create several databases from the same share to split access between teams.Why is that wrong?
Only one database can be created per share. Splitting access between teams requires the provider to use database roles.
Covered in Importing and maintaining an inbound share
2.A reader account can also consume shares from other providers it does business with.Why is that wrong?
A reader account is tied to the provider that created it and can consume only that provider's data.
3.Once the clean rooms app is installed, every user in the account can use it.Why is that wrong?
Installation covers the account, but a clean rooms administrator must still grant access to users explicitly.
Covered in Snowflake Data Clean Rooms: install, users and collaborators
Practise it for real
Provision a reader account for a partner without Snowflake and give it access to an existing share
1.As ACCOUNTADMIN, optionally run GRANT CREATE ACCOUNT ON ACCOUNT TO ROLE SYSADMIN; to delegate reader-account management.
Why: Only ACCOUNTADMIN, or a role with the global CREATE ACCOUNT privilege, can create and manage reader accounts.
You should see: SYSADMIN can now run CREATE MANAGED ACCOUNT.
2.Run CREATE MANAGED ACCOUNT <account_name> ADMIN_NAME = <username> , ADMIN_PASSWORD = '<password>' , TYPE = READER;
Why: Reader accounts are MANAGED ACCOUNT objects. The admin user will configure the account.
You should see: A status row with accountName, accountLocator and the login url.
3.Wait up to five minutes, then run SHOW MANAGED ACCOUNTS;
Why: The account needs time to provision, and this command also tracks usage against the default limit of 75.
You should see: The new reader account appears in the list.
4.Add the reader account to an existing share with ALTER SHARE <share> ADD ACCOUNTS = <reader_account>;
Why: Reader accounts receive data through shares, just like full consumer accounts.
You should see: The share's consumer list (SHOW GRANTS OF SHARE) includes the reader account.
5.Log in as the admin user, create a database from the share, and set up a resource monitor on the warehouse.
Why: The share is usable only after import, and the provider is billed for every credit the reader's warehouses use.
You should see: The reader can query the imported database, and warehouse credits are capped.
Stuck? Get a nudge
If CREATE DATABASE ... FROM SHARE fails, check that the account has finished provisioning and was added to the share.
Sources
Every claim above is drawn from one of these pages, quoted as it was written on the date shown.
- 1.
“Executing this command requires a role with the global CREATE DATABASE and IMPORT SHARE privileges.”
↩︎ Importing and maintaining an inbound share“granting the IMPORTED PRIVILEGES privilege on an imported database to one or more roles in your account.”
↩︎ Importing and maintaining an inbound share“The data provider must enable change tracking on views or tables before you can create streams on these objects.”
↩︎ Importing and maintaining an inbound share“Resharing is restricted to accounts in your own organization.”
↩︎ Importing and maintaining an inbound share - 2.
“Shared data does not take up any storage in a consumer account”
↩︎ Importing and maintaining an inbound share“you can only create one database per share.”
↩︎ Exam trap 1 - 3.
“The reader account utilizes the same Snowflake Edition as the provider account and is created in the same region.”
↩︎ Reader accounts for consumers without Snowflake“Warehouses in a reader account can consume an unlimited number of credits each month, which will be charged to your provider account.”
↩︎ Reader accounts for consumers without Snowflake“You can work with data, for example, by creating materialized views.”
↩︎ Reader accounts for consumers without Snowflake“After creating a reader account, wait for up to five minutes to ensure that the account is fully provisioned.”
↩︎ Reader accounts for consumers without Snowflake“By default, the total number of reader accounts a provider can create is 75.”
↩︎ Reader accounts for consumers without Snowflake“a reader account can only consume data from the provider account that created it.”
↩︎ Exam trap 2“To limit usage, set up a resource monitor for the warehouse.”
↩︎ Checkpoint - 4.
“To join a collaboration as a data provider or activate data to another collaborator, you must have Enterprise Edition or higher.”
↩︎ Snowflake Data Clean Rooms: install, users and collaborators“Install the Snowflake Data Clean Rooms application from the Snowflake Marketplace”
↩︎ Snowflake Data Clean Rooms: install, users and collaborators“By default, clean rooms can be shared only with participants in the same underlying cloud region.”
↩︎ Snowflake Data Clean Rooms: install, users and collaborators“However, access to the clean rooms environment must be granted to users explicitly by a clean rooms administrator.”
↩︎ Exam trap 3“Reader accounts are not supported, because reader accounts do not allow the data sharing required to install and run the clean rooms application.”
↩︎ Checkpoint - 5.
“Collaborators install an application named SFDCR_collaboration_name from this listing, which provides them access to the collaboration.”
↩︎ Snowflake Data Clean Rooms: install, users and collaborators - 6.https://docs.snowflake.com/en/user-guide/cleanrooms/v1/tutorials/cleanroom-web-app-tutorialOfficial docs
“Administrators must define someone as a collaborator before other users can share a clean room with that collaborator.”
↩︎ Snowflake Data Clean Rooms: install, users and collaborators
Also cited
“There is no option to allow different groups of users in a data consumer account to access a subset of the shared objects.”
↩︎ Checkpoint