Role-based access control (RBAC) is a way of giving people access to your systems based on their job, not on who they are. You define roles such as bookkeeper, sales rep or office manager, attach permissions to each role, and assign people to roles. When someone joins, changes jobs or leaves, you change their role instead of rebuilding their access piece by piece. IBM describes it as authorizing access to systems, applications and data based on a user's predefined role.
This guide is written for owners and managers of small and medium businesses in Canada. It covers how RBAC works, how to design roles that stay manageable, how it compares with attribute-based access control, and what to do when your tools are scattered across five different logins.
Table of Contents
- How does role-based access control work?
- Why does RBAC matter for a small business?
- How do you set up user roles and permissions step by step?
- Do you already use RBAC without knowing it?
- What are the limits of RBAC, and how do you avoid them?
- How does RBAC differ from attribute-based access control (ABAC)?
- How often should you review roles and offboard people?
- Perspective: why separate tools make access control harder
- When does it make sense to build roles into one custom system?
- How AdaptAI can help
- FAQ
- Sources
How does role-based access control work?
The model has three moving parts: users, roles and permissions.
- Users are the people (or sometimes services) who sign in.
- Roles are job functions, such as "invoicing clerk" or "service technician".
- Permissions are specific actions on specific data: view a customer record, edit an invoice, export a report.
Permissions are attached to roles, and users are attached to roles. A user never receives a permission directly. The Canadian Centre for Cyber Security describes RBAC as an access control policy that enforces access to objects and system functions based on the subject's defined role, with users inheriting the privileges defined for the roles they hold. NIST's RBAC project puts the same idea strictly: all access goes through roles, and permissions connect only to roles, not to individual users.
A simple example: your "salesperson" role can view and edit the customer database. Everyone in sales gets that role. Cloudflare's explanation notes that roles are generic rather than tailored to one employee, and that if a particular salesperson needs more, you assign an additional role instead of inventing special permissions for them.
One point trips people up: RBAC is not authentication. MongoDB's documentation is clear that it manages what a person can do after they have proven who they are. Passwords and two-factor sign-in answer "who are you?". RBAC answers "what are you allowed to do?"
Why does RBAC matter for a small business?
Small teams often skip access design because "everyone knows everyone". Then the part-time bookkeeper has admin rights on the CRM, a former employee still has a login to the scheduling tool, and nobody can say who can see payroll figures. RBAC fixes this in three practical ways.
- Less administration. Okta lists reduced complexity, easier onboarding, fewer mistakes and lower overall cost among the benefits. Changing one role updates everyone who holds it.
- Least privilege by default. The Canadian Centre for Cyber Security's baseline controls for small and medium organizations advise granting only the minimum access a job function needs, which limits the damage if an account is misused or compromised.
- Easier reviews. IBM points out that RBAC simplifies reviewing access because roles are relatively stable, while users and permissions change quickly. You review a handful of roles, not every person's individual settings.
There is also a sign that this is mainstream good practice, not enterprise overkill. The Government of British Columbia's Access Control Security Standard (IMIT 6.24), effective 10 November 2021, requires need-to-know and least privilege, a deny-all default before access is granted, and permissions assigned to roles rather than to individual user IDs. That standard binds the provincial government, not your company, but it is a sound template for a business in B.C.
How do you set up user roles and permissions step by step?
You do not need special software to start. You need a spreadsheet and an hour with the people who know the work.
1. Inventory who has access to what
The Cyber Centre's guidance for small organizations makes this the first step: document who has access to which systems and at what level. Expect surprises. Most businesses find old accounts, shared logins and people with far more access than their job needs.
2. Group the work into roles
Start from tasks, not names. Ask what each job actually needs to see and change. A typical 20-person service business might land on five or six roles:
| Role | Typically needs | Typically does not need |
|---|---|---|
| Owner / administrator | Everything, including user management | Nothing is off limits, but use a separate standard account for daily work |
| Operations manager | Scheduling, job records, reports | Payroll details, system settings |
| Sales | Customer records, quotes, pipeline | Supplier payments, other staff's pay |
| Bookkeeper | Invoices, payments, financial reports | Editing customer contact history |
| Field staff | Their own schedule and job notes | Pricing, financials, other people's jobs |
| Read-only (advisor, accountant) | Reports and records, view only | Any edit rights |
Okta's suggested approach is to identify roles together with management and HR, plan a timeline and invite feedback before rolling the plan out. Staff often know better than managers what a job really touches.
3. Start from deny-all
Give a new role nothing, then add what the job requires. This mirrors the deny-all default in the B.C. standard above. It is much easier to add a permission someone asks for than to discover later that a role was too generous.
4. Give each person their own account
The Cyber Centre recommends unique individual accounts and no shared credentials. Roles are pointless if three people share one login, because you can no longer tell who did what.
5. Separate admin accounts from daily accounts
The Cyber Centre also advises that administrator accounts be used only for administrative tasks, with standard accounts for email and browsing. If you are the owner, that means two logins for you.
6. Write it down
One page per role: what it is for, what it can do, who holds it, who approves changes. This is the document you will use for onboarding, offboarding and reviews.
Do you already use RBAC without knowing it?
Probably. Many tools Canadian businesses use every day are built on roles.
- The CRA's Represent a Client service lets a business assign employee roles, including Junior and Senior administrators, with different access to functions and client information.
- Corporations Canada distinguishes between full access managers and filing collaborators, and says only a director or authorized agent such as an officer can be a full access manager.
- In QuickBooks Enterprise Desktop in Canada, businesses can create custom roles with levels such as View Only and Create and Modify.
The pattern is the same each time: a few well-defined roles, assigned to named people. The trouble starts when each tool has its own role list, managed in its own place, with no connection between them.
What are the limits of RBAC, and how do you avoid them?
RBAC works well, but it fails in predictable ways. Knowing them lets you design around them.
Role explosion. If you create a new role every time someone needs something slightly different, you end up with dozens of near-duplicates. Pathlock describes this as the most commonly reported RBAC challenge in large enterprises, with administrators managing hundreds or thousands of roles. For a small business the fix is simple: cap your role count, and handle the odd exception by adding a second role to a person, not by cloning a role.
Scope creep. Over time, roles collect permissions and rarely lose them. The Cyber Centre notes that RBAC can increase privacy and security risk if people in a role get access to more information than they need. Quebec's cyber defence centre makes the same point. The remedy is a regular review.
Documentation and multi-tenancy. The OWASP Access Control Cheat Sheet lists stringent documentation, difficulty with multi-tenancy and lack of support for data-based access control among the typical problems. If you serve several client organizations from one system, plan for that early.
Rules that depend on context. Roles say who someone is in the organization. They do not easily express rules like "only for accounts in their own region" or "only during business hours". That is where attribute-based access control comes in.

How does RBAC differ from attribute-based access control (ABAC)?
RBAC decides by role. ABAC decides by evaluating rules against attributes. NIST defines ABAC, as summarized by archTIS, as a model that evaluates rules against the attributes of the user, the resource, the operation and the environment to grant or deny a request.
| RBAC | ABAC | |
|---|---|---|
| Decision based on | The user's role | Attributes of user, resource, action and context |
| Example rule | Bookkeepers can edit invoices | Bookkeepers can edit invoices under a set amount, for their own branch, during working hours |
| Setup effort | Low to moderate | Higher, needs well-maintained attributes |
| Fit for a small business | Usually the right starting point | Add selectively where roles are too blunt |
For most businesses with under a few hundred staff, RBAC covers the vast majority of needs. A common approach is to start with roles and add a few attribute-style conditions (such as "own records only") for the situations that need them. You do not have to choose one forever.
How often should you review roles and offboard people?
Treat access as something that drifts. Set a recurring calendar reminder to go through each role and each person holding it, and confirm both are still appropriate. Review administrator roles more often than standard ones.
Offboarding is the review that matters most. The Cyber Centre's guidance for protecting information advises promptly and completely revoking access when an employee leaves. With a role-based setup this is one step per system. With shared logins it is a scramble to change every password.
The same discipline applies to the technical keys that connect your systems. If your software talks to other services through API keys, rotating them on a schedule belongs in the same routine, and automating API key rotation keeps that from depending on someone's memory.

Two more habits worth adding: turn on two-factor authentication wherever it is offered, and monitor audit logs so you can see who changed what, as multi-user QuickBooks guidance recommends. If your environment is large enough, the Cyber Centre also suggests considering centralized authorization such as LDAP or Active Directory.
Perspective: why separate tools make access control harder
We see the same pattern in almost every small business we work with. The CRM has one list of users, the invoicing tool has another, the scheduling app has a third, and reporting lives in a spreadsheet someone emailed around. Each system has its own idea of what a "manager" can do. Nobody designed that. It accumulated.
The result is that role-based access control exists on paper but not in practice. When someone leaves, you have to remember five places. When someone changes jobs, you update two and forget three. That is not a discipline problem. It is a structure problem.
Our view is that the cleanest way to get roles right is to have one system, with one login and one set of roles, covering CRM, invoicing, scheduling and reporting. You define "bookkeeper" once, and it applies everywhere the bookkeeper works. That is what we build: custom software designed around your actual processes, where the roles match your org chart and not a vendor's default template. Our clients own the code, so there is no lock-in on how your permissions are structured.
We would also say plainly that software does not replace judgment. Someone still has to decide who needs what, and teams need to understand why. That is why we pair builds with training tailored to real tasks. Clients typically report saving 5 to 15 hours of administrative work per week after implementation, and tighter, clearer access is part of what makes that work run smoothly.
Harry Gill
When does it make sense to build roles into one custom system?
Off-the-shelf tools are a reasonable choice when your processes are standard and each tool's built-in roles fit your needs. A custom system tends to pay off when:
- You use three or more tools that each need their own user management.
- Your real-world roles (for example, "estimator who can see quotes but not margins") do not match any tool's preset roles.
- You need one audit trail across sales, billing and scheduling.
- Staff turnover or seasonal hiring makes onboarding and offboarding a recurring chore.
If you are weighing this, our guides on custom software versus off-the-shelf and on a checklist for custom business software for Canadian SMEs walk through the decision. If the CRM is the main pain point, see when a custom CRM pays off.
How AdaptAI can help
AdaptAI builds custom software for small and medium businesses in Surrey and Metro Vancouver, bringing CRM, invoicing, scheduling, reporting and workflow automation together behind one login. Roles and permissions are designed around how your team works, at a fixed price with regular milestones and local support.

If you are not ready for a full build, our AI strategy consulting and discovery work is a lower-commitment way to map your current tools and access. To talk through a unified system, start at adaptai.ca.
FAQ
What is the difference between RBAC and user permissions?
Permissions are the individual actions someone can take, such as viewing or editing a record. RBAC is the method of organizing them: permissions are bundled into roles, and people are assigned to roles. Without roles, you manage permissions person by person, which becomes hard to track as the team grows.
How many roles should a small business have?
There is no fixed number, but fewer is better. Five to eight roles cover most small teams, based on job functions such as admin, sales, finance, operations and read-only. If you keep needing exceptions, add a second role to the person instead of creating a new near-duplicate role, since too many roles is a well-known RBAC problem.
Is RBAC the same as authentication?
No. Authentication confirms who someone is, through a password or two-factor sign-in. RBAC controls what that person can do once signed in. You need both.
Do I need RBAC if I only have a few employees?
Yes, in a simple form. Even a team of five benefits from separating admin access from daily accounts, giving everyone their own login and limiting finance data to the people who handle it. The Cyber Centre's small-organization guidance recommends least privilege and an access inventory regardless of size.
Sources
- What Is Role-Based Access Control (RBAC)? | IBM
- Access control, Canadian Centre for Cyber Security
- Role Based Access Control FAQs, NIST CSRC
- What is role-based access control (RBAC)? | Cloudflare
- Role-based Access Control (RBAC) | MongoDB
- What Is Role-Based Access Control (RBAC)? | Okta Canada
- Baseline cyber security controls for small and medium organizations
- Role-Based Access Control Implementation Guide | IBM
- Implement access control and authorization, Canadian Centre for Cyber Security
- Manage how your business uses Represent a Client, CRA
- Access management roles, Corporations Canada
- Managing Multiple Users in QuickBooks Canada
- Role-Based Access Control (RBAC): A Comprehensive Guide | Pathlock
- AC-03(07), Centre gouvernemental de cyberdéfense du Québec
- Access Control Cheat Sheet, OWASP
- NIST SP 800-162 ABAC Guide, archTIS
- Protecting specified information in non-federal systems, Canadian Centre for Cyber Security
- API Key Rotation for Developers
