Bird
Raised Fist0
MySQLquery~5 mins

Role-based access in MySQL - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is role-based access control (RBAC) in databases?
RBAC is a method to restrict database access based on user roles. Each role has specific permissions, and users get access by being assigned to roles.
Click to reveal answer
beginner
How do you create a role in MySQL?
Use the statement: CREATE ROLE 'role_name'; to create a new role.
Click to reveal answer
intermediate
How do you assign privileges to a role in MySQL?
Use GRANT privilege ON database.table TO 'role_name'; to give permissions to a role.
Click to reveal answer
intermediate
How do you assign a role to a user in MySQL?
Use GRANT 'role_name' TO 'user'@'host'; to assign a role to a user.
Click to reveal answer
intermediate
What command activates a role for the current session in MySQL?
Use SET ROLE 'role_name'; to activate the role's privileges in your session.
Click to reveal answer
Which command creates a new role in MySQL?
ASET ROLE 'manager';
BCREATE USER 'manager';
CGRANT ROLE 'manager';
DCREATE ROLE 'manager';
How do you give SELECT permission on a table to a role?
AGRANT SELECT ON database.table TO 'role_name';
BCREATE ROLE SELECT ON database.table;
CSET ROLE SELECT ON database.table;
DASSIGN SELECT TO 'role_name';
What command assigns a role to a user?
ACREATE USER 'user' WITH ROLE 'role_name';
BSET ROLE 'role_name' FOR 'user';
CGRANT 'role_name' TO 'user'@'host';
DASSIGN ROLE 'role_name' TO 'user';
How does a user activate a role's privileges in their session?
ACREATE ROLE 'role_name';
BSET ROLE 'role_name';
CGRANT ROLE 'role_name';
DUSE ROLE 'role_name';
Which of these is NOT true about roles in MySQL?
ARoles automatically activate for all users without SET ROLE.
BUsers can be assigned multiple roles.
CRoles can have privileges assigned.
DRoles simplify privilege management.
Explain how role-based access control works in MySQL and why it is useful.
Think about how grouping permissions into roles helps manage many users.
You got /6 concepts.
    Describe the steps to create a role, assign privileges, and enable a user to use that role in MySQL.
    Focus on the sequence of commands from role creation to user activation.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of role-based access control (RBAC) in MySQL?
      easy
      A. To store user passwords securely
      B. To group permissions into roles and assign them to users
      C. To optimize query performance
      D. To backup the database automatically

      Solution

      1. Step 1: Understand role-based access control concept

        RBAC groups permissions into roles instead of assigning them individually to users.
      2. Step 2: Identify the main purpose in MySQL context

        Assigning roles to users simplifies permission management and improves security.
      3. Final Answer:

        To group permissions into roles and assign them to users -> Option B
      4. Quick Check:

        RBAC = Group permissions + assign roles [OK]
      Hint: RBAC groups permissions, then assigns roles to users [OK]
      Common Mistakes:
      • Confusing RBAC with password storage
      • Thinking RBAC improves query speed
      • Assuming RBAC is for backups
      2. Which of the following is the correct syntax to create a role named manager in MySQL?
      easy
      A. CREATE ROLE manager;
      B. MAKE ROLE manager;
      C. ADD ROLE manager;
      D. NEW ROLE manager;

      Solution

      1. Step 1: Recall MySQL syntax for creating roles

        The correct command to create a role is CREATE ROLE role_name;.
      2. Step 2: Match syntax with options

        Only CREATE ROLE manager; uses the correct CREATE ROLE syntax.
      3. Final Answer:

        CREATE ROLE manager; -> Option A
      4. Quick Check:

        CREATE ROLE = create new role [OK]
      Hint: Use CREATE ROLE to make a new role in MySQL [OK]
      Common Mistakes:
      • Using MAKE ROLE instead of CREATE ROLE
      • Using ADD ROLE which is invalid
      • Using NEW ROLE which is not a MySQL command
      3. Given the following commands:
      CREATE ROLE analyst;
      GRANT SELECT ON sales TO analyst;
      GRANT analyst TO alice;

      What permission does user alice have on the sales table?
      medium
      A. SELECT permission on sales
      B. INSERT permission on sales
      C. No permissions on sales
      D. ALL permissions on sales

      Solution

      1. Step 1: Analyze role creation and permission grant

        The role analyst is created and given SELECT permission on the sales table.
      2. Step 2: Check user role assignment

        User alice is granted the analyst role, so she inherits its permissions.
      3. Final Answer:

        SELECT permission on sales -> Option A
      4. Quick Check:

        User with role gets role's permissions [OK]
      Hint: User inherits permissions from assigned roles [OK]
      Common Mistakes:
      • Assuming user gets INSERT without grant
      • Thinking user has no permissions without direct grant
      • Assuming ALL permissions without explicit grant
      4. Consider this MySQL command:
      GRANT SELECT ON employees TO 'john';

      Why might this command fail when using role-based access?
      medium
      A. Because 'john' is not a valid username format
      B. Because SELECT is not a valid permission
      C. Because GRANT cannot be used on tables
      D. Because permissions should be granted to roles, not directly to users

      Solution

      1. Step 1: Understand role-based access best practice

        In RBAC, permissions are granted to roles, then roles are assigned to users.
      2. Step 2: Identify why direct grant to user may fail

        Granting permissions directly to users bypasses roles and may be restricted or discouraged.
      3. Final Answer:

        Because permissions should be granted to roles, not directly to users -> Option D
      4. Quick Check:

        Grant permissions to roles, assign roles to users [OK]
      Hint: Grant permissions to roles, not users directly [OK]
      Common Mistakes:
      • Thinking SELECT is invalid permission
      • Assuming username format is wrong
      • Believing GRANT can't be used on tables
      5. You want to create a role developer with INSERT and UPDATE permissions on the projects table, then assign it to user emma. Which sequence of commands correctly achieves this?
      hard
      A. CREATE ROLE developer; GRANT SELECT ON projects TO developer; GRANT developer TO emma;
      B. GRANT INSERT, UPDATE ON projects TO emma; CREATE ROLE developer; GRANT developer TO emma;
      C. CREATE ROLE developer; GRANT INSERT, UPDATE ON projects TO developer; GRANT developer TO emma;
      D. CREATE USER developer; GRANT INSERT, UPDATE ON projects TO developer; GRANT developer TO emma;

      Solution

      1. Step 1: Create the role named developer

        Use CREATE ROLE developer; to define the role.
      2. Step 2: Grant INSERT and UPDATE permissions on projects to the role

        Use GRANT INSERT, UPDATE ON projects TO developer; to assign permissions.
      3. Step 3: Assign the role to user emma

        Use GRANT developer TO emma; to give emma the role's permissions.
      4. Final Answer:

        CREATE ROLE developer; GRANT INSERT, UPDATE ON projects TO developer; GRANT developer TO emma; -> Option C
      5. Quick Check:

        Create role, grant permissions, assign role [OK]
      Hint: Create role, grant permissions, then assign role to user [OK]
      Common Mistakes:
      • Granting permissions directly to user instead of role
      • Using CREATE USER instead of CREATE ROLE
      • Granting wrong permissions like SELECT instead of INSERT, UPDATE
      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