Goal: Avoid giving ACCOUNTADMIN to everyone and build clean role structures.
Why Role Hierarchy Matters
Snowflake RBAC is designed so privileges flow downward from higher-level roles to lower-level roles.
By creating a clear hierarchy, you:
- Reduce the risk of privilege overreach.
- Make it easier to audit and manage.
- Follow the principle of least privilege.
Recommended Role Hierarchy
ACCOUNTADMIN
↓
SECURITYADMIN
↓
SYSADMIN
↓
Custom Business Roles
- ACCOUNTADMIN – Full control, rarely used.
- SECURITYADMIN – Manages users and roles.
- SYSADMIN – Manages objects (databases, warehouses, etc.).
- Custom Business Roles – Specific access for departments or use cases.
🚀 Copy & Paste: Role Hierarchy Setup
sql -- Create business roles CREATE ROLE reporting; CREATE ROLE data_engineering; -- Assign privileges to roles GRANT USAGE ON WAREHOUSE wh_analytics TO ROLE reporting; GRANT SELECT ON ALL TABLES IN SCHEMA sales.public TO ROLE reporting; GRANT USAGE ON WAREHOUSE wh_etl TO ROLE data_engineering; GRANT CREATE TABLE ON SCHEMA raw.public TO ROLE data_engineering; -- Link roles into the hierarchy GRANT ROLE reporting TO ROLE sysadmin; GRANT ROLE data_engineering TO ROLE sysadmin;
Top comments (0)