Practice this topic in a realistic system design interview
An internal tool often starts with a few admins. At that stage, checking access by user ID in code can feel good enough.
But as the team grows, that approach breaks down. Support, billing, finance, and operations all need different access. People change teams. Responsibilities shift. Giving permissions one user at a time becomes hard to manage and easy to get wrong.
Role-Based Access Control, or RBAC, solves this by putting roles in the middle. Permissions are assigned to roles, and roles are assigned to users or service accounts. Access follows responsibilities, not individual people.
That makes changes easier. You can update a role once or move someone to a different role without rewriting access checks across the codebase.
This chapter explains how to model RBAC clearly and enforce it safely in production systems.