Understanding Snowflake’s Standard Roles (And When to Use Each One)

If you’re managing access in Snowflake and want to keep things clean, secure, and easy to reason about, it helps to understand what the built-in roles are actually for. Here’s a breakdown of the standard roles Snowflake provides, what they can do, and how I typically see them used in practice.

ACCOUNTADMIN

The most powerful role in Snowflake. It has complete control over every object and setting in the account—including security, billing, user management, and object access.

Use case: Reserved for a small number of senior administrators. Think of it as the fire extinguisher behind glass—only for emergencies or top-level changes.

SECURITYADMIN

This role is designed to manage user and role access. It can:
– Create, modify, and delete users
– Assign and revoke roles
– Grant privileges on roles

Use case: Assign this to whoever manages identity and access. It’s ideal for enforcing security policies without giving access to warehouses or data.

SYSADMIN

The workhorse role for Snowflake resource management. It can:
– Create and manage warehouses
– Build and manage databases, schemas, tables, views, etc.
– Grant object privileges to custom roles

Use case: Great for DBAs and data engineers. This is where most of the day-to-day work with data structures happens.

USERADMIN

A more limited user management role than SECURITYADMIN. It can:
– Create and manage users and custom roles
– Cannot assign or manage SYSTEM roles (like SYSADMIN or ACCOUNTADMIN)

Use case: Perfect for department-level admins or DevOps engineers who need to create users but don’t need broader access.

PUBLIC

Every user automatically gets the PUBLIC role. It’s meant for globally accessible objects.

Use case: Use this for shared UDFs, utility views, or reference tables that everyone in the account should be able to use. Be cautious—it’s visible to all users.

Role Hierarchy (Standard)

ACCOUNTADMIN
├── SECURITYADMIN
│   └── USERADMIN
└── SYSADMIN
    └── PUBLIC

Quick Reference Table

RoleKey ResponsibilityWho Should Have It
ACCOUNTADMINFull account controlVery few senior admins
SECURITYADMINRole/user managementIdentity and access managers
SYSADMINManage data objects and warehousesDBAs, data engineers
USERADMINCreate/manage users and custom rolesDepartment/DevOps leads
PUBLICDefault role for shared resourcesEveryone (default)

Final Thoughts

The standard roles in Snowflake give you a solid starting point. But as your organization grows, consider creating custom roles tailored to team needs and least-privilege principles. That’s where Snowflake really starts to shine from a security and scalability standpoint.