SnowDDL
  • 👋Introduction
  • 🚩Getting started
  • 📋Main features
  • 🪤SnowDDL vs. Declarative DCM
  • In-depth guides
    • 👓Object identifiers
    • 📐Data types
    • 📦Object types
    • 🎭Role hierarchy
    • 🚧Permission model
    • 🔦Other guides
      • Administration user
      • Integrations
      • Inbound shares
      • Object OWNERSHIP
      • Safe & unsafe DDL
      • Dependency management
      • Short hash explained
      • Env Prefix explained
      • Team workflow
      • Limitations & workarounds
      • Fivetran
      • Airbyte
      • Encrypt user passwords
      • Iceberg Tables
  • Basic usage (CLI + YAML)
    • 💻CLI interface
    • 📦YAML configs
      • ACCOUNT PARAMETER
      • ACCOUNT POLICY
      • AGGREGATION POLICY
      • ALERT
      • AUTHENTICATION POLICY
      • BUSINESS ROLE
      • DATABASE
      • DYNAMIC TABLE
      • EVENT TABLE
      • EXTERNAL ACCESS INTEGRATION
      • EXTERNAL FUNCTION
      • EXTERNAL TABLE
      • FILE FORMAT
      • FUNCTION
      • HYBRID TABLE
      • ICEBERG TABLE
      • MASKING POLICY
      • MATERIALIZED VIEW
      • NETWORK POLICY
      • NETWORK RULE
      • PERMISSION MODEL
      • PIPE
      • PLACEHOLDER
      • PROCEDURE
      • PROJECTION POLICY
      • RESOURCE MONITOR
      • ROW ACCESS POLICY
      • SCHEMA
      • SECRET
      • SEQUENCE
      • SHARE (outbound)
      • STAGE
      • STAGE FILE
      • STREAM
      • TABLE
      • TASK
      • TECHNICAL ROLE
      • USER
      • VIEW
      • WAREHOUSE
    • 🏷️YAML placeholders
    • 📬YAML tag !include
    • 🔐YAML tag !decrypt
  • Single DB
    • 🦀Overview
  • Advanced usage (Python)
    • ⚙️Programmatic config
    • 🐍Architecture overview
      • 🔵Blueprints
      • 🟣Config
      • 🟠Parsers
      • 🟢Resolvers
      • 🔴Engine
    • 🏗️Query builder & formatter
  • Breaking changes log
    • 0.45.0 - March 2025
    • 0.41.0 - January 2025
    • 0.37.0 - December 2024
    • 0.36.0 - November 2024
    • 0.33.0 - October 2024
    • 0.27.0 - May 2024
  • Links
    • GitHub repository
    • PyPI package
    • YouTube tutorials
    • Changelog
    • LinkedIn profile
Powered by GitBook
On this page
  • Schema
  • Usage notes
  • Links
  1. Basic usage (CLI + YAML)
  2. YAML configs

DATABASE

PreviousBUSINESS ROLENextDYNAMIC TABLE

Last updated 1 month ago

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

  • owner_database_read (list)

    • {items} (ident) - grant READ privileges for objects in another database to OWNER role of this database

  • owner_database_write (list)

    • {items} (ident) - grant WRITE privileges for objects in another database to OWNER role of this database

  • owner_schema_read (list)

    • {items} (ident) - grant READ privileges for objects in another schema to OWNER role of this database

  • owner_schema_write (list)

    • {items} (ident) - grant WRITE privileges for objects in another schema to OWNER role of this database

  • owner_share_read (list)

    • {items} (ident) - grant IMPORTED PRIVILEGES or DATABASE ROLE 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. 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.

Links

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

owner_* parameters are designed to provide additional privileges which are required for some object types to operate properly. These parameters require with database_owner ruleset.

📦
permission model
the relevant guide
permission model
CREATE DATABASE
ALTER DATABASE
SHOW DATABASES
Parser & JSON Schema (GitHub)