Object OWNERSHIP
OWNERSHIP is a special privilege in Snowflake. You should read & fully understand the Access Control Snowflake documentation first.
SnowDDL implementation of OWNERSHIP is following:
Account-level object types are typically owned by SnowDDL admin role
Schema-level objects are typically owned by
SCHEMA ROLE (OWNER)
orDATABASE ROLE (OWNER)
which are created automatically.
For schema-level objects OWNERSHIP is assigned using FUTURE GRANTS. There is no "race condition" between creation of object and change of OWNERSHIP, which is common for other object management tools.
SnowDDL typically creates schemas with MANAGED ACCESS
. It means that users having SCHEMA ROLE (OWNER)
can create / alter / drop objects in such schema, but they cannot grant access to objects in this schema to some other role (e.g. to PUBLIC
).
This is very important for security.
Practical example
Last updated