> For the complete documentation index, see [llms.txt](https://docs.snowddl.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.snowddl.com/guides/object-types.md).

# Object types

Object types are sorted in execution order. See explanation after the table.

<table><thead><tr><th width="321">Object type</th><th width="150" align="center">CREATE</th><th width="150" align="center">COMPARE</th><th width="150" align="center">DROP</th><th width="468">Notes</th></tr></thead><tbody><tr><td><code>ACCOUNT_PARAMETER</code></td><td align="center">N/A</td><td align="center"><mark style="color:red;">UNSAFE +</mark></td><td align="center">N/A</td><td>ACCOUNTADMIN, skip on empty config</td></tr><tr><td><code>RESOURCE_MONITOR</code></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td>ACCOUNTADMIN</td></tr><tr><td><code>WAREHOUSE</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td>ACCOUNTADMIN to assign RESOURCE_MONITOR</td></tr><tr><td><code>WAREHOUSE_ROLE</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td></td></tr><tr><td><code>DATABASE</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td></td></tr><tr><td><code>SCHEMA</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td></td></tr><tr><td><code>SCHEMA_ROLE</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td></td></tr><tr><td><code>SECRET</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td></td></tr><tr><td><code>NETWORK_RULE</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark> and <mark style="color:orange;">UNSAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td>ALTER is safe, REPLACE is unsafe</td></tr><tr><td><code>EXTERNAL_ACCESS_INTEGRATION</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td></td></tr><tr><td><code>FILE_FORMAT</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td>Short hash</td></tr><tr><td><code>STAGE</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark> and <mark style="color:orange;">UNSAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td></td></tr><tr><td><code>SEQUENCE</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td></td></tr><tr><td><code>FUNCTION</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td>Short hash</td></tr><tr><td><code>EXTERNAL_FUNCTION</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td>Short hash</td></tr><tr><td><code>PROCEDURE</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td>Short hash</td></tr><tr><td><code>TABLE</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark> and <mark style="color:orange;">UNSAFE +</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td></td></tr><tr><td><code>EVENT_TABLE</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark> and <mark style="color:orange;">UNSAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td></td></tr><tr><td><code>HYBRID_TABLE</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td>Short hash</td></tr><tr><td><code>DYNAMIC_TABLE</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark> and <mark style="color:orange;">UNSAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td></td></tr><tr><td><code>EXTERNAL_TABLE</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td>Short hash</td></tr><tr><td><code>PRIMARY_KEY</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td></td></tr><tr><td><code>UNIQUE_KEY</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td></td></tr><tr><td><code>FOREIGN_KEY</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td></td></tr><tr><td><code>MATERIALIZED_VIEW</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td></td></tr><tr><td><code>VIEW</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td></td></tr><tr><td><code>SEMANTIC_VIEW</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td>Short hash</td></tr><tr><td><code>PIPE</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td>Short hash</td></tr><tr><td><code>STREAM</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td></td></tr><tr><td><code>TASK</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td>Short hash</td></tr><tr><td><code>ALERT</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td></td></tr><tr><td><code>SHARE</code> (outbound)</td><td align="center"><mark style="color:orange;">UNSAFE +</mark></td><td align="center"><mark style="color:orange;">UNSAFE +</mark></td><td align="center"><mark style="color:orange;">UNSAFE +</mark></td><td></td></tr><tr><td><code>TECHNICAL_ROLE</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td></td></tr><tr><td><code>BUSINESS_ROLE</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td></td></tr><tr><td><code>USER_ROLE</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:green;">SAFE</mark></td><td></td></tr><tr><td><code>USER</code></td><td align="center"><mark style="color:green;">SAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td></td></tr><tr><td><code>AGGREGATION_POLICY</code></td><td align="center"><mark style="color:orange;">UNSAFE +</mark></td><td align="center"><mark style="color:orange;">UNSAFE +</mark></td><td align="center"><mark style="color:orange;">UNSAFE +</mark></td><td></td></tr><tr><td><code>AUTHENTICATION_POLICY</code></td><td align="center"><mark style="color:orange;">UNSAFE +</mark></td><td align="center"><mark style="color:orange;">UNSAFE +</mark></td><td align="center"><mark style="color:orange;">UNSAFE +</mark></td><td>Short hash</td></tr><tr><td><code>JOIN_POLICY</code></td><td align="center"><mark style="color:orange;">UNSAFE +</mark></td><td align="center"><mark style="color:orange;">UNSAFE +</mark></td><td align="center"><mark style="color:orange;">UNSAFE +</mark></td><td></td></tr><tr><td><code>MASKING_POLICY</code></td><td align="center"><mark style="color:orange;">UNSAFE +</mark></td><td align="center"><mark style="color:orange;">UNSAFE +</mark></td><td align="center"><mark style="color:orange;">UNSAFE +</mark></td><td></td></tr><tr><td><code>NETWORK_POLICY</code></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td></td></tr><tr><td><code>PROJECTION_POLICY</code></td><td align="center"><mark style="color:orange;">UNSAFE +</mark></td><td align="center"><mark style="color:orange;">UNSAFE +</mark></td><td align="center"><mark style="color:orange;">UNSAFE +</mark></td><td></td></tr><tr><td><code>ROW_ACCESS_POLICY</code></td><td align="center"><mark style="color:orange;">UNSAFE +</mark></td><td align="center"><mark style="color:orange;">UNSAFE +</mark></td><td align="center"><mark style="color:orange;">UNSAFE +</mark></td><td></td></tr><tr><td><code>BACKUP_POLICY</code></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td></td></tr><tr><td><code>BACKUP_SET</code></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td align="center"><mark style="color:orange;">UNSAFE</mark></td><td></td></tr></tbody></table>

### Notes

* Safe & unsafe operations are explained in ["Safe & unsafe DDL" guide](/guides/other-guides/safe-unsafe.md).
* Some role types are generated dynamically. You may read more in [Role hierarchy guide](/guides/role-hierarchy.md).
* `+` means that additional setting or [CLI argument](/basic/cli.md) might be required to apply this change.
* `ACCOUNTADMIN` note means that only user with this role can apply this change. It should be applied by human administrator manually or by SnowDDL user having this role automatically.
* `Short hash` note means that objects of this type will have a short hash added to `comment`. It is explained in [Short hash guide](/guides/other-guides/short-hash.md).
* In some cases both "safe" and "unsafe" changes can be applied to the same object type and operation type. Please refer to specific object type documentation for more details.
