Skip to main content

Maintenance, Cloud & Modernization

Roles and Permissions in Business Software: What to Specify

Permissions decide who can see and change what. Specifying them early, as a matrix of roles, actions and data scopes, prevents data leaks, approval bypasses and costly redesign later.

All insights3 min readBy APPNEURAL Editorial

Illustrative security engineers reviewing a hardware security key and access controls
Illustrative context image

Quick answer

When specifying roles and permissions for business software, list user roles, the actions each can perform on each type of record, the data scope they can access such as own records, team, branch or all, which actions need approval, how sensitive fields are protected, how roles are assigned and removed and what must be logged for audit.

Key takeaways

  • Write a role-action-scope matrix before development.
  • Data scope matters as much as allowed actions.
  • Enforce permissions on the server for every request.
  • Plan role assignment, removal and periodic review.

Who this guide is for

Product owners and business teams writing requirements for custom software, portals or admin systems.

01

List roles from real work

Identify the types of users and what they do: sales executive, branch manager, accountant, warehouse staff, administrator, external customer. Avoid creating roles for every individual. Roles should reflect responsibilities. Note users who combine responsibilities and decide whether they get multiple roles. Validate the role list with managers from each department, since they know which responsibilities overlap and which are often delegated during absences.

02

Define actions per record type

For each record type, such as customer, order, invoice or product, list actions: view, create, edit, delete, approve, export and share. Mark which roles can perform each action. A simple matrix is easy for business users to review and becomes the specification developers implement and testers verify.

03

Define data scope

Permissions are not just what someone can do but on which records. A sales executive may see only their own customers, a branch manager their branch, a regional manager their region and an administrator all. Scope rules must apply consistently across screens, reports, exports and APIs.

04

Protect sensitive fields

Some fields need extra protection, such as salaries, bank details, identity numbers, health information or cost prices. Decide which roles can see them in full, masked or not at all. Apply the same rules in exports and reports, where leaks often occur. Record who viewed sensitive fields where regulation or internal policy requires it, and review the list of roles with full access periodically.

05

Identify approval and segregation needs

Some actions should require a second person, such as approving a discount, a refund or a payment. Segregation of duties means the person who creates a transaction should not approve it. Specify these rules explicitly; they are often legal or audit requirements in finance processes.

06

Plan assignment, change and removal

Decide who can assign roles, how requests are approved and how access is removed when people change jobs or leave. Integration with central identity management helps. Schedule periodic access reviews where managers confirm their team’s permissions are still appropriate. Temporary access, such as cover during leave, should have an expiry date so it does not quietly become permanent. Keep a record of every role change with who approved it and when.

07

Require enforcement and logging

Permissions must be enforced on the server for every request, not only by hiding buttons in the interface. Log permission changes and sensitive actions. Include permission testing in acceptance criteria, including attempts to access records outside scope by changing URLs or API parameters. Automated tests for permission rules help prevent regressions when new screens or APIs are added later.

Scope checklist

  • Which roles exist and what are their responsibilities?
  • Which actions can each role perform on each record type?
  • What data scope applies to each role?
  • Which fields are sensitive?
  • Who assigns and reviews roles?
Open the printable preparation checklist or template (new tab) →

Frequently asked questions

What is role-based access control?

A method of granting permissions to roles rather than individuals, so users receive access according to their assigned roles.

What is the difference between RBAC and ABAC?

Role-based access control grants permissions by role. Attribute-based access control uses attributes such as branch, department or record owner, allowing finer rules. Many systems combine both.

How do I test permissions in software?

Test each role against the permission matrix, including attempts to access other users’ records through URLs, exports and APIs.

Prepared with AI assistance as an engineering decision guide. Examples are illustrative unless explicitly labelled as an internal implementation. No independent expert review or customer outcome is claimed.

Concerned about an existing system?

Share what the system does, who maintains it today and what is going wrong. Scope, access, dependencies and commercial terms are agreed before delivery. Do not submit passwords, API keys or confidential records.