Role-based access control, commonly referred to as RBAC, assigns system permissions to roles rather than to individual people. A user gains access by being placed into a role, and the role carries a defined set of permissions. The planning task, therefore, is not about deciding what each employee can do — it is about defining which roles the system needs, what each role is allowed to do, and how users are assigned to those roles.
Planning RBAC properly matters because the alternative is usually an ad-hoc arrangement where permissions are granted person by person. That approach works for a handful of users but becomes unreliable and difficult to audit once a system has dozens of accounts, multiple departments, or external users such as clients and contractors. RBAC gives you a structure you can document, review and modify without touching every individual account.
The planning stage sits between understanding your user roles in general — which is covered in the separate User Roles and Permissions Guide — and selecting a permission model at a technical level. This article focuses on the practical work of translating your business functions into a workable role structure before a developer or supplier builds it.
Plan access around these control points
| Control point | What to confirm |
|---|---|
| What planning actually produces | A completed RBAC plan should give a developer or systems integrator a clear, unambiguous specification. |
| Start from business functions, not job titles | The most common planning error is to copy the organisational chart directly into the system. |
| Map each process to the permissions IT requires | Take a core workflow — for example, onboarding a new client in a portal. |
| Decide on role granularity | There is a practical tension between having too few roles and too many. |
| Plan for role hierarchies and inheritance | Many RBAC implementations support inheritance, where a senior role automatically includes the permissions of a more junior role. |
| Account for temporary and cross-departmental access | Real operations rarely fit neatly into permanent roles. |
What planning actually produces
A completed RBAC plan should give a developer or systems integrator a clear, unambiguous specification. That typically means a list of roles, a list of permissions grouped by system area, and a matrix showing which roles hold which permissions. It should also cover how users are added to and removed from roles, and who is authorised to make those changes.
Without this level of specificity, a supplier will make assumptions. Those assumptions may be reasonable, but they will reflect the supplier's generic experience rather than your operational reality. The plan is your way of ensuring the system fits your business, not the other way around.
Start from business functions, not job titles
The most common planning error is to copy the organisational chart directly into the system. Job titles such as "Manager" or "Director" sound like natural roles, but they rarely map cleanly onto system permissions. A regional sales manager and a marketing manager may share the same job level but need entirely different access within a CRM. Two people with the title "Administrator" might sit in different departments and require access to different modules.
Instead, start by listing what the system actually does: view client records, create invoices, approve purchase orders, export reports, manage user accounts, and so on. Then group those actions by the type of person who performs them in practice. The resulting groups become your roles.
Map each process to the permissions IT requires
Take a core workflow — for example, onboarding a new client in a portal. Walk through each step and note which actions the system must allow: creating the client record, uploading documents, sending a welcome message, assigning an account manager, generating a contract. Then identify which roles need to perform each step. Some steps may require more than one role, particularly where approval or verification is involved.
This process-by-process approach catches permissions that a simple feature list would miss. It also reveals where a single role might need to be split. If one group of users creates records but a different group approves them, those are likely two separate roles even if both sit within the same department.
Decide on role granularity
There is a practical tension between having too few roles and too many. Too few roles means granting more access than necessary — a user who only needs to view records might also be able to delete them because the role bundles those permissions together. Too many roles creates an administrative burden: every new hire requires a careful decision about which combination of roles to assign, and the permission matrix becomes difficult to maintain.
A useful starting point is to aim for roles that reflect distinct operational responsibilities rather than every possible variation. If three users need slightly different subsets of the same core permissions, consider whether a single role with a small number of exceptions is simpler than three separate roles. Document the reasoning so that future maintainers understand why the structure looks the way it does.
Plan for role hierarchies and inheritance
Many RBAC implementations support inheritance, where a senior role automatically includes the permissions of a more junior role. A "Senior Analyst" role might inherit everything from "Analyst" and add approval rights. This reduces duplication in the permission matrix and makes promotions simpler — you change the user's role rather than reassigning individual permissions.
However, inheritance only works cleanly when your roles form a genuine hierarchy. If a "Team Lead" needs some permissions from "Analyst" and others from "Administrator" but not all of either, forced inheritance creates either over-permission or an awkward structure. Be prepared to treat some roles as standalone rather than forcing them into a tree.
Account for temporary and cross-departmental access
Real operations rarely fit neatly into permanent roles. Staff cover for colleagues on leave, project teams draw members from multiple departments, and auditors need short-term read-only access. If your RBAC plan only covers steady-state operations, these situations will be handled by ad-hoc permission grants that undermine the structure.
Consider whether your system needs concepts such as temporary role assignment with an expiry date, delegated access that can be revoked by the delegator, or a separate "read-only auditor" role that can be switched on and off. These are not technical afterthoughts — they need to be part of the plan because they affect the data model and the user-management interface.
Define who manages role assignments
RBAC introduces a meta-question: who is allowed to put users into roles? In a small business this might be the owner or office manager. In a larger organisation it may be department heads for their own teams, with a central administrator handling cross-departmental roles. The plan should specify this, because the system needs to enforce it. A department head should not be able to grant themselves a system-administrator role.
Access-control mistakes and checks
Common mistakes in RBAC planning
- Using job titles as roles. As noted above, job titles describe organisational position, not system access. Two people with the same title often need different permissions, and one person may need permissions spanning what would be multiple titles.
- Planning for today's headcount only. A system that works for five users may break down at fifty if the role structure assumes everyone knows everyone else's responsibilities. Plan for the scale you expect, not just the scale you have.
- Ignoring the offboarding path. Planning how users gain access is straightforward; planning how they lose it is often overlooked. If a user in multiple roles leaves, does removing them from one role automatically remove them from all? Does deactivating their account cascade correctly?
- Confusing RBAC with fine-grained permissions. RBAC is not designed to express rules like "a user can edit records they created but not records created by others." That level of control requires additional logic beyond simple role assignment. If your business needs those distinctions, note them during planning so the development approach accounts for them.
- Not documenting the rationale. A permission matrix tells you what each role can do, but not why. When someone questions whether a role should have a particular permission six months later, the absence of reasoning leads to either cautious over-restriction or careless over-granting.
Limitations to acknowledge
RBAC handles the common case well: groups of users who need the same set of permissions over a sustained period. It handles less well the situations where access depends on context — the specific record, the time of day, the user's location, or the data classification of what they are trying to reach. Those scenarios are where attribute-based and rule-based models become relevant, a comparison addressed in the neighbouring article on permission models.
RBAC also assumes relatively stable organisational functions. If your business restructures frequently, or if job responsibilities shift from month to month, maintaining the role structure becomes an ongoing overhead rather than a one-time planning task. That does not make RBAC wrong, but it changes the calculation of whether it is the most practical approach for your situation.
Key checks before finalising the plan
- Completeness: For every system function, can you identify which role or roles are permitted to use it? If a function has no assigned role, it is either inaccessible to everyone or accessible to everyone — both are likely errors.
- Least privilege: Does each role hold only the permissions it needs? Review each role and ask whether removing any single permission would break a legitimate workflow. If the answer is no for a particular permission, it should probably be removed.
- Separation of duties: Where your processes require that one person cannot both initiate and approve an action, do the roles reflect that? A single role that can both create and approve purchase orders, for example, would bypass an important control.
- No orphaned users: Is every user account assigned to at least one role? Accounts with no role should have no access, but that needs to be a deliberate state, not an oversight.
- Admin role discipline: Is the system-administrator role restricted to the smallest practical group? Does it avoid bundling in routine business permissions that could be assigned to less privileged roles?
- Change process: Is there a documented process for creating new roles, modifying existing ones, and retiring roles that are no longer needed? Without this, the role structure will drift over time.
Questions to put to a supplier
When discussing RBAC with a development company or systems integrator, practical questions separate a considered response from a generic one:
- How does the system handle users who need to be in multiple roles simultaneously — are permissions combined, or does one role take priority?
- Can role assignments be time-limited, or are they all permanent until manually revoked?
- Is there an audit log that records when a user is added to or removed from a role, and who made the change?
- What happens to a user's access if their role is deleted — are they locked out entirely, or do they retain residual permissions?
- Can the system generate a report showing every user and their current role assignments?
These questions test whether the supplier has thought about RBAC as an operational concern rather than purely a technical feature. The answers will tell you whether the system will remain manageable as your team and processes evolve.