How to Create a Schema in Snowflake
Last updated July 24, 2026 · By the SaturnSQL team
Use CREATE SCHEMA inside the current database, or qualify it as database.schema. Schemas namespace tables and views; grants on a schema cascade to future objects with future grants.
Without a qualifier the schema is created in the current database, which depends on session context, so qualifying it as database.schema is worth the extra typing in scripts. IF NOT EXISTS makes it re-runnable. Add WITH MANAGED ACCESS if grants on objects inside should be controlled by the schema owner rather than each object's owner.
CREATE SCHEMA IF NOT EXISTS analytics.reporting;Grant access
USAGE on the schema is what lets a role see it at all, and it is separate from any grant on the tables inside. The FUTURE TABLES line is the part people forget: without it, a table created tomorrow is invisible to the analyst role even though the schema grant is in place. The role also needs USAGE on the parent database.
GRANT USAGE ON SCHEMA analytics.reporting TO ROLE analyst;
GRANT SELECT ON FUTURE TABLES IN SCHEMA analytics.reporting TO ROLE analyst;Run this in SaturnSQL
SaturnSQL is a browser-based SQL editor for teams: shared query library, schema-aware autocomplete, and scheduled exports to Google Sheets and Slack.
Try it free