📖 Scenario: You are managing access control in a Snowflake data warehouse for a small company. You want to create a clear role hierarchy to organize permissions efficiently. This will help you assign roles to users with the right access levels.
🎯 Goal: Build a simple role hierarchy in Snowflake by creating roles and granting them to each other in a parent-child relationship.
📋 What You'll Learn
Create three roles: analyst_role, manager_role, and admin_role
Grant analyst_role to manager_role
Grant manager_role to admin_role
💡 Why This Matters
🌍 Real World
Role hierarchies in Snowflake help companies organize user permissions clearly and securely, making it easier to manage who can access what data.
💼 Career
Understanding role hierarchies is essential for cloud administrators and data engineers to implement secure access control in Snowflake environments.
Progress0 / 4 steps
1
Create the initial roles
Write SQL statements to create three roles named analyst_role, manager_role, and admin_role in Snowflake.
Snowflake
Hint
Use the CREATE ROLE command followed by the role name.
2
Grant analyst_role to manager_role
Write a SQL statement to grant the role analyst_role to the role manager_role.
Snowflake
Hint
Use the GRANT ROLE command to assign one role to another.
3
Grant manager_role to admin_role
Write a SQL statement to grant the role manager_role to the role admin_role.
Snowflake
Hint
Use the GRANT ROLE command again to assign manager_role to admin_role.
4
Verify the role hierarchy
Write a SQL query to show the roles granted to admin_role to confirm the hierarchy.
Snowflake
Hint
Use SHOW GRANTS TO ROLE followed by the role name to see granted roles.
Practice
(1/5)
1. What does role hierarchy in Snowflake allow you to do?
easy
A. Store data in different regions automatically
B. Create multiple users with the same password
C. Let roles inherit permissions from other roles
D. Schedule queries to run at specific times
Solution
Step 1: Understand role hierarchy concept
Role hierarchy means roles can inherit permissions from other roles, simplifying access management.
Step 2: Identify correct description
Only Let roles inherit permissions from other roles describes this inheritance feature correctly.
Final Answer:
Let roles inherit permissions from other roles -> Option C
Quick Check:
Role hierarchy = permission inheritance [OK]
Hint: Role hierarchy means roles inherit permissions [OK]
Common Mistakes:
Confusing role hierarchy with user password management
Thinking role hierarchy controls data storage
Mixing role hierarchy with query scheduling
2. Which of the following is the correct syntax to grant a role to another role in Snowflake?
easy
A. GRANT ROLE parent_role TO ROLE child_role;
B. GRANT ROLE TO ROLE parent_role child_role;
C. GRANT ROLE child_role TO ROLE parent_role;
D. GRANT ROLE parent_role child_role TO ROLE;
Solution
Step 1: Recall Snowflake grant syntax
To make one role inherit another, you grant the parent role to the child role using: GRANT ROLE parent_role TO ROLE child_role;
Step 2: Match syntax to options
GRANT ROLE parent_role TO ROLE child_role; matches the correct syntax exactly.
Final Answer:
GRANT ROLE parent_role TO ROLE child_role; -> Option A
Quick Check:
Grant parent to child = correct syntax [OK]
Hint: Grant parent role TO child role syntax [OK]
Common Mistakes:
Reversing parent and child roles in the grant statement
Incorrect order of keywords in the command
Missing 'TO ROLE' keyword
3. Given the following role hierarchy: GRANT ROLE analyst TO ROLE senior_analyst; GRANT ROLE senior_analyst TO ROLE manager; If a user is assigned the role manager, which roles' permissions does the user have?
medium
A. Manager and senior_analyst only
B. Manager, senior_analyst, and analyst
C. Only manager
D. Only analyst
Solution
Step 1: Trace role inheritance
Manager role inherits senior_analyst, which inherits analyst. So manager includes all permissions from senior_analyst and analyst.
Step 2: Determine user permissions
User with manager role has permissions from manager, senior_analyst, and analyst roles.
Final Answer:
Manager, senior_analyst, and analyst -> Option B
Quick Check:
Role inheritance includes all ancestor roles [OK]
Hint: User gets all inherited roles' permissions [OK]
Common Mistakes:
Assuming user only has direct role permissions
Ignoring transitive inheritance in role hierarchy
Confusing child and parent roles
4. You run this command: GRANT ROLE analyst TO senior_analyst; What is wrong with this command?
medium
A. Cannot grant a role to another role
B. Role names must be in quotes
C. The order of roles is reversed
D. Missing 'ROLE' keyword before 'senior_analyst'
Solution
Step 1: Check syntax for granting roles
The correct syntax requires 'TO ROLE' before the role receiving the grant.
Step 2: Identify missing keyword
The command misses 'ROLE' keyword before 'senior_analyst'. It should be: GRANT ROLE analyst TO ROLE senior_analyst;
Final Answer:
Missing 'ROLE' keyword before 'senior_analyst' -> Option D
Quick Check:
Grant syntax requires 'TO ROLE' [OK]
Hint: Always include 'TO ROLE' keyword in grant statements [OK]
Common Mistakes:
Omitting 'ROLE' keyword after TO
Thinking roles cannot be granted to roles
Using quotes unnecessarily around role names
5. You want to create a role hierarchy where intern inherits from analyst, and analyst inherits from manager. Which sequence of commands correctly sets this up?
hard
A. GRANT ROLE manager TO ROLE analyst; GRANT ROLE analyst TO ROLE intern;
B. GRANT ROLE analyst TO ROLE intern; GRANT ROLE manager TO ROLE analyst;
C. GRANT ROLE manager TO ROLE analyst; GRANT ROLE intern TO ROLE analyst;
D. GRANT ROLE intern TO ROLE analyst; GRANT ROLE analyst TO ROLE manager;
Solution
Step 1: Understand inheritance direction
Child role inherits from parent role by granting parent role TO child role.
Step 2: Apply to given roles
Intern inherits analyst: GRANT ROLE analyst TO ROLE intern; Analyst inherits manager: GRANT ROLE manager TO ROLE analyst;
Step 3: Match sequence to options
GRANT ROLE manager TO ROLE analyst; GRANT ROLE analyst TO ROLE intern; matches the correct order and syntax.
Final Answer:
GRANT ROLE manager TO ROLE analyst; GRANT ROLE analyst TO ROLE intern; -> Option A
Quick Check:
Grant parent TO child for inheritance [OK]
Hint: Grant parent role TO child role to inherit [OK]
Common Mistakes:
Reversing parent and child roles in grants
Granting child TO parent instead of parent TO child
Mixing order of commands
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.