Skip to content

Authentication, roles, and the privilege model that locks an account down

Snowflake's security model is built on network security, authentication, authorization via role-based access control (RBAC), and object-level ownership, all enforced through hierarchical containers (organization, account, database, schema). Access to data is never granted directly to users—only to roles, which are then assigned to users, enabling scalable and auditable permission management. Governance features like Dynamic Data Masking, Row Access Policies, Object Tagging, and the Access History in ACCOUNT_USAGE support compliance and data protection at scale.

1 · Learn the must-know

  • Every securable object in Snowflake has exactly one owner role, and that role initially has full privileges on the object (OWNERSHIP privilege).
  • Snowflake uses RBAC (not user-based grants); privileges are granted to roles, and roles are granted to users or to other roles, forming a role hierarchy.
  • System-defined roles (ORGADMIN, ACCOUNTADMIN, SECURITYADMIN, USERADMIN, SYSADMIN, PUBLIC) each have specific scopes—e.g., SECURITYADMIN manages grants and security integrations, USERADMIN manages users and roles, and PUBLIC is automatically granted to every user and role.
  • ACCOUNTADMIN combines SECURITYADMIN and SYSADMIN and should be assigned to very few users, with MFA strongly recommended/enforced for it.
  • Snowflake supports network policies (IP allow/block lists), federated authentication/SSO, MFA (via Duo), key pair authentication, and OAuth for authentication, layered on top of RBAC for defense in depth.
  • Column-level security (Dynamic Data Masking) and row-level security (Row Access Policies) are implemented as policy objects attached to columns/tables, allowing centralized, reusable governance rules enforced regardless of how data is queried.

2 · Check your understanding

Check this objectiveFree · always available

A Snowflake Practitioner creates a custom role named DATA_ENGINEER using CREATE ROLE and grants it privileges on several tables. The role is granted directly to individual users but is never linked into the role hierarchy above PUBLIC. The Security team finds that SYSADMIN cannot manage or view objects owned by DATA_ENGINEER through standard administrative queries. All custom roles must remain manageable by the system administrator role. Which change should the Practitioner make?

Your objective map0 tried · 0 answered correctly · 19 untouched

What you have tried across SnowPro Core's objectives, not a readiness score.

Snowflake AI Data Cloud Features and Architecture31% of the exam0 of 6 tried
Account Management and Data Governance20% of the exam0 of 3 tried
Data Loading, Unloading, and Connectivity18% of the exam0 of 3 tried
Performance Optimization, Querying, and Transformation21% of the exam0 of 4 tried
Data Collaboration10% of the exam0 of 3 tried

3 · Keep going