DATABASE

Config path: /<database>/params.yaml

Example:

is_transient: true
retention_time: 60
comment: "Test database"

Schema

  • is_transient (bool) - make database TRANSIENT

  • retention_time (int) - data retention time in days

  • is_sandbox (bool) - custom schemas and schema objects created in sandbox database will not be dropped if not present in config

  • permission_model (str) - name of custom permission model

  • owner_database_read (list)

    • {items} (ident) - grant READ privileges for objects in another database to OWNER role of this database (requires permission model with database_owner ruleset)

  • owner_schema_write (list)

    • {items} (ident) - grant WRITE privileges for objects in another database to OWNER role of this database (requires permission model with database_owner ruleset)

  • owner_share_read (list)

    • {items} (ident) - grant IMPORTED PRIVILEGES for inbound share to OWNER role of this database

  • owner_integration_usage (list)

    • {items} (ident) - grant USAGE privilege on global integration to OWNER role of this database

  • owner_warehouse_usage (list)

    • {items} (ident) - grant USAGE privilege on warehouse to OWNER role of this database

  • owner_account_grants (list)

    • {items} (str) - grant account-level privilege to OWNER role of this database

  • owner_global_roles (list)

    • {items} (ident) - grant external roles with custom permissions created outside of SnowDDL to OWNER roles in this database

  • comment (str)

Usage notes

  1. File params.yaml is optional. All parameters are set to default if file is omitted.

  2. Schema PUBLIC is dropped from newly created databases automatically.

  3. Inbound SHARES are currently not managed by SnowDDL, but can be created manually by ACCOUNTADMIN. You may read more about inbound shares in the relevant guide.

  4. Use is_sandbox parameter if you are planning to let external software to create SCHEMAS inside this database. Otherwise schemas which are not mentioned in SnowDDL config will be dropped.

  5. owner_* parameters are designed to provide additional privileges which are required for some object types to operate properly.

Last updated