Bird
Raised Fist0
MongoDBquery~10 mins

Built-in roles (read, readWrite, dbAdmin) in MongoDB - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Built-in roles (read, readWrite, dbAdmin)
Start: User needs permissions
↓
Choose built-in role
↓
read
↓
Access granted based on role
↓
End
User selects one built-in role to get specific database permissions: read, readWrite, or dbAdmin.
Execution Sample
MongoDB
use mydb
 db.createUser({
   user: "alice",
   roles: ["readWrite"]
 })
Creates user 'alice' with readWrite role on 'mydb' allowing read and write access.
Execution Table
StepActionRole AssignedPermissions GrantedResult
1Switch to database 'mydb'N/AN/AContext set to 'mydb'
2Create user 'alice' with role 'readWrite'readWriteRead and write data on 'mydb'User 'alice' created
3User 'alice' tries to read datareadWriteAllowedRead operation successful
4User 'alice' tries to write datareadWriteAllowedWrite operation successful
5User 'alice' tries to perform admin taskreadWriteDeniedOperation failed: insufficient privileges
6EndN/AN/AUser permissions enforced based on role
💡 User permissions are enforced according to the assigned built-in role.
Variable Tracker
VariableStartAfter Step 2After Step 3After Step 4Final
userundefinedalice (readWrite)alice (readWrite)alice (readWrite)alice (readWrite)
permissionsnoneread and writeread allowedread and write allowedread and write allowed
Key Moments - 2 Insights
Why can't 'alice' perform admin tasks with the readWrite role?
Because the readWrite role only grants read and write data permissions, not administrative privileges. See execution_table row 5 where admin tasks are denied.
What happens if you assign the 'read' role instead of 'readWrite'?
The user can only read data but cannot write. This is shown by the difference in permissions granted in execution_table rows 3 and 4.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what permissions does 'alice' have after step 2?
ARead and write data on 'mydb'
BOnly read data on 'mydb'
CFull admin privileges
DNo permissions
💡 Hint
Check the 'Permissions Granted' column at step 2 in the execution_table.
At which step does 'alice' fail to perform an operation due to insufficient privileges?
AStep 3
BStep 4
CStep 5
DStep 6
💡 Hint
Look for 'Operation failed' in the 'Result' column of the execution_table.
If 'alice' was assigned the 'dbAdmin' role, which permission would change?
AShe could only read data
BShe could manage database structure
CShe would lose write access
DNo change in permissions
💡 Hint
Refer to the concept_flow where dbAdmin role allows managing database structure.
Concept Snapshot
Built-in roles in MongoDB control user permissions.
read: can only read data.
readWrite: can read and write data.
dbAdmin: can manage database structure.
Assign roles when creating users to control access.
Permissions are enforced automatically by MongoDB.
Full Transcript
This visual execution shows how MongoDB built-in roles work. First, you switch to the target database. Then you create a user and assign a built-in role like readWrite. This role lets the user read and write data but not perform admin tasks. The execution table traces each step: creating the user, reading data, writing data, and trying an admin task. The user can do read and write but fails admin operations. Variables track the user and permissions over time. Key moments clarify why roles limit actions and what changes if roles differ. The quiz tests understanding by asking about permissions at specific steps and role effects. The snapshot summarizes the roles and their permissions simply.

Practice

(1/5)
1. Which built-in MongoDB role allows a user to only view data without making any changes?
easy
A. root
B. readWrite
C. dbAdmin
D. read

Solution

  1. Step 1: Understand the read role

    The read role allows users to view data but not modify it.
  2. Step 2: Compare with other roles

    readWrite allows changes, dbAdmin manages settings, root has full access.
  3. Final Answer:

    read -> Option D
  4. Quick Check:

    View-only permission = read [OK]
Hint: View-only means read role [OK]
Common Mistakes:
  • Confusing readWrite with read
  • Thinking dbAdmin allows data viewing only
  • Assuming root is for read-only
2. Which of the following is the correct way to assign the readWrite role to a user on the database mydb in MongoDB shell?
easy
A. db.grantRolesToUser('username', [{role: 'readWrite', db: 'mydb'}])
B. db.createUser({user: 'username', roles: ['readWrite']})
C. db.grantRolesToUser('username', ['readWrite'])
D. db.grantRolesToUser('username', [{role: 'readWrite', db: 'admin'}])

Solution

  1. Step 1: Check syntax for granting roles

    The correct syntax uses db.grantRolesToUser with an array of role objects specifying role and database.
  2. Step 2: Validate database name and role format

    db.grantRolesToUser('username', [{role: 'readWrite', db: 'mydb'}]) correctly specifies role as 'readWrite' and database as 'mydb'. db.grantRolesToUser('username', [{role: 'readWrite', db: 'admin'}]) wrongly uses 'admin' database.
  3. Final Answer:

    db.grantRolesToUser('username', [{role: 'readWrite', db: 'mydb'}]) -> Option A
  4. Quick Check:

    Grant role with role+db object array [OK]
Hint: Use role objects with db name in array for granting roles [OK]
Common Mistakes:
  • Passing roles as simple strings without db
  • Using wrong database name for the role
  • Using createUser instead of grantRolesToUser for existing users
3. Given a user with the dbAdmin role on database sales, which of the following actions can the user perform?
medium
A. Create and drop indexes on collections
B. Insert new documents into collections
C. Read documents from collections
D. Modify documents in collections

Solution

  1. Step 1: Understand dbAdmin role capabilities

    The dbAdmin role allows managing database settings like indexes, stats, and users, but not data changes.
  2. Step 2: Match actions to role permissions

    Creating/dropping indexes is a dbAdmin task. Inserting, reading, or modifying documents require readWrite or read roles.
  3. Final Answer:

    Create and drop indexes on collections -> Option A
  4. Quick Check:

    dbAdmin manages indexes, not data changes [OK]
Hint: dbAdmin manages indexes, not data content [OK]
Common Mistakes:
  • Assuming dbAdmin can insert or modify data
  • Confusing readWrite with dbAdmin
  • Thinking dbAdmin can read data
4. You tried to assign the readWrite role to a user with this command:
db.grantRolesToUser('alice', ['readWrite'])
But it failed. What is the likely cause?
medium
A. The user 'alice' does not exist
B. The role array must contain objects with role and db fields
C. The readWrite role does not exist
D. You must use createUser to assign roles

Solution

  1. Step 1: Check syntax for grantRolesToUser

    The method requires an array of role objects with role and db fields, not just strings.
  2. Step 2: Analyze the given command

    The command uses an array of strings, which is invalid syntax and causes failure.
  3. Final Answer:

    The role array must contain objects with role and db fields -> Option B
  4. Quick Check:

    Roles must be objects with role and db [OK]
Hint: Roles need role+db objects, not strings [OK]
Common Mistakes:
  • Passing roles as strings instead of objects
  • Assuming createUser is needed to add roles to existing users
  • Ignoring user existence errors
5. You want a user to manage database indexes and view data but not modify documents. Which combination of built-in roles should you assign?
hard
A. readWrite only
B. dbAdmin only
C. read and dbAdmin
D. readWrite and dbAdmin

Solution

  1. Step 1: Identify roles for viewing data and managing indexes

    read allows viewing data, dbAdmin allows managing indexes and database settings.
  2. Step 2: Exclude roles that allow modifying documents

    readWrite allows modifying documents, which is not desired here.
  3. Final Answer:

    read and dbAdmin -> Option C
  4. Quick Check:

    View + manage indexes = read + dbAdmin [OK]
Hint: Combine read and dbAdmin to view and manage without edits [OK]
Common Mistakes:
  • Using readWrite which allows document changes
  • Assigning only dbAdmin which lacks read permission
  • Assuming dbAdmin includes readWrite
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