Snowflake-provided tags¶
Snowflake-provided tags are out of the box tags for common governance use cases, such as tracking cost centers, identifying sensitive data, certifying trusted data assets, and pausing tag propagation. These tags give you a consistent tagging vocabulary across accounts, databases, teams, and use cases.
Overview¶
Organizations commonly create similar governance tags in every Snowflake account. Defining and maintaining those tags requires decisions about tag names, allowed values, privileges, and comments. Over time, inconsistent definitions make tags difficult to understand and maintain, which contributes to tag sprawl.
Snowflake-provided tags offer predefined, opinionated defaults for day-one tagging. Snowflake creates these tags in the
SNOWFLAKE.TAGS schema in every account. You can use them immediately without creating and maintaining equivalent tags in each
account.
Because the tags have the same fully qualified names and intended uses across accounts, they help you:
- Establish a consistent tagging vocabulary.
- Reduce duplicate and overlapping tags.
- Avoid maintaining separate tag definitions in each account.
- Make tag usage easier to understand across databases, teams, and accounts.
- Build governance and AI workflows that rely on well-known tag names and values.
Users can’t create tags in the SNOWFLAKE.TAGS schema. Access is granted through application roles. For more information, see
Access control.
You can assign Snowflake-provided tags to the same supported objects as other object tags.
Available Snowflake-provided tags¶
The following Snowflake-provided tags are available:
| Tag | Purpose |
|---|---|
SNOWFLAKE.TAGS.COST_CENTER | Identifies the cost center associated with an object for cost tracking and budget control. |
SNOWFLAKE.TAGS.CERTIFICATION_STATUS | Identifies whether a data asset is ready and is trusted for use. |
SNOWFLAKE.TAGS.SENSITIVITY | Assigns a standardized sensitivity level to a data object. |
SNOWFLAKE.TAGS.ENVIRONMENT | Identifies the deployment environment an object belongs to. |
SNOWFLAKE.TAGS.PROJECT | Associates an object with a project for organization and cost tracking. |
SNOWFLAKE.TAGS.SKIP_TAG_PROPAGATION | Prevents future automatic tag propagation to an object. Requires Enterprise Edition or higher. |
COST_ CENTER¶
Use SNOWFLAKE.TAGS.COST_CENTER to identify the cost center associated with an object for cost tracking and budget control.
CERTIFICATION_ STATUS¶
Use SNOWFLAKE.TAGS.CERTIFICATION_STATUS to identify whether a data asset is ready and is trusted for use.
The tag supports the following values:
'DRAFT''TO BE REVIEWED''IN REVIEW''CERTIFIED''REJECTED''DEPRECATED'
CERTIFIED indicates that the asset has been verified and is ready for production use. DEPRECATED indicates that the asset should
no longer be used in production.
Unlike the other Snowflake-provided tags, account administrators can’t modify the definition or allowed values of
CERTIFICATION_STATUS. The fixed values let governance and AI workflows interpret certification status consistently.
Note
The SNOWFLAKE.CORE.CERTIFICATION_STATUS tag is still supported but will be deprecated in a future release. Snowflake
recommends that you use SNOWFLAKE.TAGS.CERTIFICATION_STATUS instead.
SENSITIVITY¶
Use SNOWFLAKE.TAGS.SENSITIVITY to assign a standardized sensitivity level to a data object.
The predefined values are:
'RESTRICTED''CONFIDENTIAL''INTERNAL''PUBLIC'
A role that is granted the OOB_TAG_ADMIN application role can change these allowed values.
Note
SNOWFLAKE.TAGS.SENSITIVITY is different from the SNOWFLAKE.CORE.PRIVACY_CATEGORY system-defined tag used by
sensitive data classification.
ENVIRONMENT¶
Use SNOWFLAKE.TAGS.ENVIRONMENT to identify the deployment environment an object belongs to.
The allowed values are:
'PRODUCTION''STAGING''TEST''DEVELOPMENT'
PROJECT¶
Use SNOWFLAKE.TAGS.PROJECT to associate an object with a project for organization and cost tracking.
SKIP_ TAG_ PROPAGATION¶
Use SNOWFLAKE.TAGS.SKIP_TAG_PROPAGATION when automatic tag propagation is working as
intended, but a downstream object, such as a transformed or hash-key target, shouldn’t continue receiving propagated tags.
Set the tag with an empty string value:
Setting this tag on an object has the following effects:
- Pauses all future tag propagation to the object.
- Doesn’t remove tags that were previously propagated to the object.
To resume tag propagation to the object, unset the tag.
A user-defined tag with the same name in another schema doesn’t pause tag propagation. Only
SNOWFLAKE.TAGS.SKIP_TAG_PROPAGATION activates this behavior.
Access control¶
Snowflake creates and owns the tags in the SNOWFLAKE.TAGS schema. Users can’t create additional tags in this schema, and you
don’t grant object privileges on these tags directly.
Instead, Snowflake provides application roles. By default, these roles are granted to ACCOUNTADMIN. ACCOUNTADMIN can grant them to other roles as needed.
| Application role | What it allows |
|---|---|
OOB_TAG_READ | USAGE on the SNOWFLAKE.TAGS schema so roles can see the tags. This role is also granted to PUBLIC. |
OOB_TAG_APPLY | APPLY on Snowflake-provided tags so a role can assign the tags to objects. |
OOB_TAG_ADMIN | MODIFY on Snowflake-provided tags so a role can change allowed values, comments, and propagate settings. This role doesn’t apply to CERTIFICATION_STATUS. |
To let a custom role apply Snowflake-provided tags, grant the apply application role:
Limitations and considerations¶
- Snowflake-provided tags are predefined and can’t be dropped.
- You can’t create additional tags in the
SNOWFLAKE.TAGSschema. - The allowed values of
CERTIFICATION_STATUScan’t be modified. SKIP_TAG_PROPAGATIONrequires Enterprise Edition or higher.SKIP_TAG_PROPAGATIONpauses all future tag propagation to an object.- Setting
SKIP_TAG_PROPAGATIONdoesn’t remove tags that were previously propagated. - A user-defined tag with the same name as a Snowflake-provided tag doesn’t activate Snowflake-provided behavior.