Start with the job
Define what a person needs to accomplish before naming a role. The job gives you a smaller, clearer starting point than copying every permission available in the system.
Guide
Least privilege is a design decision made before implementation. Define the smallest useful access model for each job, then make scope and exceptions visible instead of giving everyone an admin role.
Define what a person needs to accomplish before naming a role. The job gives you a smaller, clearer starting point than copying every permission available in the system.
Decide which organization, team, project, or record group the role can reach. Scope keeps a useful role from becoming a blanket grant across the whole product.
Separate view, create, edit, approve, and delete decisions. If a workflow does not require an action, leave it out instead of granting a broad admin shortcut.
Use inheritance, relationships, and field-level conditions for the exceptions that matter. Do not create a new role for every combination of team, tenant, or record state.
An admin role can be useful for a small, trusted set of operators, but it should not stand in for requirements. When everyone is an admin, the team cannot see which access is necessary, which boundary is intentional, or where a workflow needs a narrower role.
Giving every teammate an admin role is easy to explain at first, but it hides the actual access model. People receive permissions for workflows they do not own, review, or need.
Names like “manager” or “operator” do not say which resources or actions are allowed. Translate the job into concrete scope and action decisions before building the role.
A new role for every special case makes least privilege harder to review. Keep the base role stable and model the relationship or field condition that narrows the exception.
A least-privilege model should be explainable in a review: who gets access, to which resources, for which actions, and under which conditions. A visual model makes those boundaries easier to challenge before they become code.