Bird
Raised Fist0
Snowflakecloud~5 mins

Granting and revoking privileges in Snowflake - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the GRANT command in Snowflake?
The GRANT command is used to give specific privileges to roles or users, allowing them to perform certain actions on database objects.
Click to reveal answer
beginner
How do you revoke privileges in Snowflake?
You use the REVOKE command to remove previously granted privileges from roles or users, restricting their access or actions on database objects.
Click to reveal answer
intermediate
What is a role in Snowflake and how does it relate to privileges?
A role is a collection of privileges. Assigning a role to a user grants them all the privileges that role has. This simplifies managing access rights.
Click to reveal answer
intermediate
Explain the difference between granting privileges to a user directly versus granting them to a role.
Granting privileges to a role allows multiple users to share the same access rights by assigning the role to them. Granting directly to a user is less flexible and harder to manage.
Click to reveal answer
intermediate
What happens if you revoke a privilege from a role that is assigned to multiple users?
All users assigned to that role lose the revoked privilege immediately, since the privilege is tied to the role, not individual users.
Click to reveal answer
Which command is used to give a user permission to query a table in Snowflake?
AGRANT SELECT ON TABLE my_table TO USER my_user
BREVOKE SELECT ON TABLE my_table FROM USER my_user
CCREATE ROLE my_user
DDROP TABLE my_table
What does the REVOKE command do in Snowflake?
ADeletes a user
BGives privileges to users or roles
CCreates a new role
DRemoves privileges from users or roles
If you want to manage access for many users easily, what should you use?
AUse the REVOKE command on all users
BGrant privileges directly to each user
CCreate roles and grant privileges to roles
DDelete all users and recreate them
Which privilege allows a user to create tables in a database?
ASELECT
BCREATE TABLE
CUSAGE
DINSERT
What happens if you revoke a privilege from a role assigned to multiple users?
AAll users with that role lose the privilege
BThe privilege remains for all users
COnly one user loses the privilege
DThe role is deleted
Describe how you would grant a user permission to read data from a table in Snowflake.
Think about the command syntax to allow reading data.
You got /4 concepts.
    Explain why using roles to manage privileges is better than granting privileges directly to users.
    Consider how managing many users is simplified.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of granting privileges in Snowflake?
      easy
      A. To allow roles to perform specific actions on database objects
      B. To create new users in the system
      C. To delete roles from the account
      D. To backup data automatically

      Solution

      1. Step 1: Understand the role of privileges

        Privileges control what actions roles can perform on database objects like tables or views.
      2. Step 2: Identify the purpose of granting privileges

        Granting privileges gives roles permission to do specific tasks, such as SELECT or INSERT on tables.
      3. Final Answer:

        To allow roles to perform specific actions on database objects -> Option A
      4. Quick Check:

        Grant privileges = Allow role actions [OK]
      Hint: Privileges let roles do tasks on objects, not users directly [OK]
      Common Mistakes:
      • Confusing privileges with user creation
      • Thinking privileges delete roles
      • Assuming privileges backup data
      2. Which of the following is the correct syntax to grant SELECT privilege on a table named sales_data to a role named analyst_role?
      easy
      A. GRANT SELECT TO ROLE analyst_role ON sales_data;
      B. GRANT ROLE analyst_role TO SELECT ON TABLE sales_data;
      C. GRANT SELECT ON ROLE analyst_role TO TABLE sales_data;
      D. GRANT SELECT ON TABLE sales_data TO ROLE analyst_role;

      Solution

      1. Step 1: Recall the correct GRANT syntax

        The syntax is: GRANT <privilege> ON <object_type> <object_name> TO ROLE <role_name>;
      2. Step 2: Match the syntax to the options

        GRANT SELECT ON TABLE sales_data TO ROLE analyst_role; matches the correct order and keywords exactly.
      3. Final Answer:

        GRANT SELECT ON TABLE sales_data TO ROLE analyst_role; -> Option D
      4. Quick Check:

        GRANT privilege ON object TO ROLE [OK]
      Hint: Remember: GRANT privilege ON object TO ROLE role_name [OK]
      Common Mistakes:
      • Mixing order of keywords
      • Placing role before privilege
      • Using TO TABLE instead of TO ROLE
      3. Given the following commands executed in order:
      GRANT SELECT ON TABLE customers TO ROLE sales_role;
      REVOKE SELECT ON TABLE customers FROM ROLE sales_role;
      GRANT INSERT ON TABLE customers TO ROLE sales_role;

      What privileges does sales_role have on the customers table after these commands?
      medium
      A. Only SELECT
      B. Only INSERT
      C. SELECT and INSERT
      D. No privileges

      Solution

      1. Step 1: Analyze the first GRANT

        The role sales_role is granted SELECT privilege on customers.
      2. Step 2: Analyze the REVOKE

        The SELECT privilege is revoked from sales_role, removing that permission.
      3. Step 3: Analyze the second GRANT

        The role is granted INSERT privilege on customers.
      4. Final Answer:

        Only INSERT -> Option B
      5. Quick Check:

        Revoked SELECT, granted INSERT = INSERT only [OK]
      Hint: Revoke removes privilege; later grants add new ones [OK]
      Common Mistakes:
      • Assuming revoked privileges remain
      • Thinking grants accumulate without revokes
      • Confusing privilege types
      4. You run the command:
      REVOKE ALL PRIVILEGES ON DATABASE sales_db FROM ROLE marketing_role;

      But the privileges are not removed. What is the most likely reason?
      medium
      A. The role marketing_role does not have any privileges on sales_db
      B. The syntax REVOKE ALL PRIVILEGES is invalid in Snowflake
      C. You must revoke privileges from users, not roles
      D. The database sales_db does not exist

      Solution

      1. Step 1: Check if the role has privileges

        If the role has no privileges on the database, revoking does nothing.
      2. Step 2: Verify syntax and object existence

        REVOKE ALL PRIVILEGES is valid syntax, and revoking is done on roles, not users. Assume sales_db exists.
      3. Final Answer:

        The role marketing_role does not have any privileges on sales_db -> Option A
      4. Quick Check:

        Revoking non-existent privileges has no effect [OK]
      Hint: Check if role actually has privileges before revoking [OK]
      Common Mistakes:
      • Assuming syntax error with REVOKE ALL PRIVILEGES
      • Trying to revoke from users directly
      • Ignoring role privilege state
      5. You want to allow a role data_scientist to both read and write data in tables of the analytics schema but prevent it from dropping any tables. Which set of commands correctly grants and restricts privileges?
      hard
      A. GRANT SELECT, INSERT, UPDATE ON ALL TABLES IN SCHEMA analytics TO ROLE data_scientist; GRANT DROP ON SCHEMA analytics TO ROLE data_scientist;
      B. GRANT ALL PRIVILEGES ON SCHEMA analytics TO ROLE data_scientist; REVOKE DROP ON SCHEMA analytics FROM ROLE data_scientist;
      C. GRANT SELECT, INSERT, UPDATE ON ALL TABLES IN SCHEMA analytics TO ROLE data_scientist; REVOKE DROP ON SCHEMA analytics FROM ROLE data_scientist;
      D. GRANT SELECT, INSERT, UPDATE ON ALL TABLES IN SCHEMA analytics TO ROLE data_scientist;

      Solution

      1. Step 1: Grant read and write privileges

        Grant SELECT, INSERT, and UPDATE to allow reading and writing data.
      2. Step 2: Revoke DROP privilege

        Explicitly revoke DROP to prevent deleting tables.
      3. Step 3: Evaluate other options

        GRANT ALL PRIVILEGES ON SCHEMA analytics TO ROLE data_scientist; REVOKE DROP ON SCHEMA analytics FROM ROLE data_scientist; grants ALL privileges then revokes DROP, which is valid but less precise. GRANT SELECT, INSERT, UPDATE ON ALL TABLES IN SCHEMA analytics TO ROLE data_scientist; does not revoke DROP, so drop is allowed. GRANT SELECT, INSERT, UPDATE ON ALL TABLES IN SCHEMA analytics TO ROLE data_scientist; GRANT DROP ON SCHEMA analytics TO ROLE data_scientist; grants DROP, which is opposite of requirement.
      4. Final Answer:

        GRANT SELECT, INSERT, UPDATE ON ALL TABLES IN SCHEMA analytics TO ROLE data_scientist; REVOKE DROP ON SCHEMA analytics FROM ROLE data_scientist; -> Option C
      5. Quick Check:

        Grant needed privileges, revoke unwanted ones [OK]
      Hint: Grant needed privileges, then revoke unwanted ones explicitly [OK]
      Common Mistakes:
      • Granting ALL privileges without revoking DROP
      • Not revoking DROP privilege
      • Granting DROP privilege by mistake
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard