Snowflake Artifacts¶
An artifact is a securable object in Snowflake that stores analytical content for viewing and sharing within an account. Each artifact has a unique identifier and access privileges managed through role-based access control (RBAC).
Overview¶
Artifacts include the following types:
- Dashboard (
DASHBOARD): A dashboard that runs with caller’s rights. - Chart (
CHART): A chart or table that runs with caller’s rights. - Report (
REPORT): An HTML report containing a static snapshot of text and visualizations. - File (
FILE): A static file, such as a PDF or PowerPoint file. - Thread (
THREAD): A static snapshot of a Snowflake CoWork conversation.
Artifact types share a common model for ownership, access, and visibility. Authoring, refresh, and interaction behavior depend on the type. For type-specific instructions, see Related topics.
How artifacts work¶
An artifact is separate from the file or conversation used to create it. Sharing the artifact doesn’t grant access to its source file, source conversation, or underlying tables and views. Recipients must sign in to the same Snowflake account and have access to the artifact through a role or a grant to their personal role.
Access control¶
The following privileges control access to an individual artifact:
OWNERSHIPgrants control of the artifact, including deletion and the ability to transfer ownership. Each artifact has one owner role. By default, the owner is the personal role of the user who created it.READallows viewing the artifact’s content.WRITEallows viewing and modifying the artifact. It also permits inspecting the artifact withDESCRIBE ARTIFACTandSHOW ARTIFACTSwhen those SQL commands are available.
Sharing privileges¶
Sharing requires the account-level MANAGE ACCESS privilege for the corresponding artifact type:
MANAGE ACCESS ON CHART ARTIFACTSMANAGE ACCESS ON DASHBOARD ARTIFACTSMANAGE ACCESS ON FILE ARTIFACTSMANAGE ACCESS ON REPORT ARTIFACTSMANAGE ACCESS ON THREAD ARTIFACTS
These privileges control whether a role can manage sharing for that artifact type. They don’t grant access to individual artifacts or source data. Authority to manage grants on the individual artifact is also required. A role with account-level MANAGE GRANTS can administer artifact grants.
In accounts where the artifact sharing behavior change is enabled, all five privileges are granted to PUBLIC by default. Administrators can restrict sharing independently for each type by revoking its MANAGE ACCESS privilege from PUBLIC and granting it to designated roles. Existing artifact grants remain unchanged.
For example, restrict dashboard sharing to the artifact_sharer role:
For general grant and revoke syntax, see GRANT privileges to a role and REVOKE privileges from a role.
Artifacts and source data¶
Sharing an artifact doesn’t grant privileges on its source tables or views. Data access depends on how the artifact supplies its content:
- Query-backed artifacts: Snowflake evaluates the viewer’s data privileges when queries run. This applies to Dashboard and Chart artifacts.
- Artifacts with saved content: Viewers read the saved content without rerunning its source queries. This applies to Report, File, and Thread artifacts.
Important
Recipients can view saved content even without source-data access. Changes to source data or source-data privileges don’t update existing saved content. Review the content before sharing it.
For chart refresh and cached-snapshot behavior, see Find and refresh saved artifacts.
Artifact owner capabilities¶
Owners can manage access to artifacts and transfer ownership. For dashboard and report creation, publication, and sharing procedures, see Create and share a dashboard or HTML report.
Ownership transfer¶
Ownership can be transferred to another role or to a user’s personal role through the artifact’s Share dialog. When you transfer ownership through the dialog, all current grants remain active.
Coming soon: SQL ownership transfer
SQL ownership transfer with GRANT OWNERSHIP ON ARTIFACT isn’t yet available. The following example describes the upcoming syntax; don’t run it before this capability is available in your account.
Replace the example UUID and role name with your artifact identifier and receiving role:
For artifact ownership transfer, COPY CURRENT GRANTS is the default and preserves existing READ and WRITE grants and any enabled link-sharing setting. The owner can instead replace COPY CURRENT GRANTS with REVOKE CURRENT GRANTS to remove existing READ and WRITE grants and disable that setting. The new owner receives OWNERSHIP. Link-sharing settings don’t bypass account-wide controls or source-data access checks.
Deletion¶
Deletion requires OWNERSHIP. Dropped artifacts can’t be restored with UNDROP, including by administrators. For the lifecycle of saved charts and shared conversations, see Lifecycle and access changes.
Administrative capabilities¶
Administrators can control sharing for the account and inspect artifact metadata and grants.
Control sharing for the account¶
The Sharing artifacts and chats setting is an account-wide control for artifact sharing. To change it, use the ACCOUNTADMIN role and open the Snowflake CoWork settings in Snowsight. Under Data controls, turn Sharing artifacts and chats on or off.
Turning the setting off blocks new sharing and prevents non-owners from accessing shared artifacts, even if they have existing grants. Owners retain access, and authorized users can still revoke sharing for cleanup.
This setting is separate from artifact privileges:
MANAGE ACCESScontrols who can administer sharing for each artifact type. It doesn’t bypass the account-wide setting.READandWRITEgrants control access to individual artifacts when sharing is enabled, subject to other applicable access checks.
Turning sharing off blocks access; it isn’t a substitute for revoking the grants on an artifact.
Inspect artifacts and grants¶
Coming soon: SQL administration
The artifact-specific SQL commands and function in this section aren’t yet available. SQL administration has a separate rollout from the artifact authoring and sharing workflows.
Administrators can use the following SQL interfaces when they become available:
SHOW ARTIFACTSlists artifacts and their identifiers.DESCRIBE ARTIFACTinspects an artifact’s properties.SYSTEM$SHOW_ARTIFACT_GRANTSinspects theOWNERSHIP,READ, andWRITEgrants recorded on an artifact. It returns JSON containing each grant’s privilege, grantee role, grantor role, grant option, and creation timestamp.
The grant output lists role grants, not every user with effective access, and doesn’t include source-data permissions or link-sharing settings. Artifact grants aren’t included in SHOW GRANTS output.
These interfaces return metadata, not content. Reference artifacts by their unique identifier, not their display title. The identifier is the UUID after /artifacts/ in the artifact URL; it is also available through SHOW ARTIFACTS when that command is available.
Limitations and considerations¶
- Artifact administration SQL manages existing artifacts; it doesn’t create artifacts or edit their content.
- Possessing an artifact link doesn’t replace the applicable access checks.
- Availability and supported authoring surfaces depend on the artifact type.