Role vs Profile in Salesforce

By: Rajeshwari Jain | Published: October 20, 2026 | 8 min
Role vs Profile in Salesforce

A Salesforce profile defines what a user can do: the objects, fields, apps, and system permissions they can use. A role decides which records a user can see, based on their position in the role hierarchy. Every user is assigned a profile, while a role is optional. Profiles and roles serve different purposes and do not replace one another.

Role vs Profile at a Glance

Profiles define the access and actions available to users, while roles help determine which records they can access.

Question it answers
Profile
What can this user do?
Role
Whose records can this user access?
What it controls
Profile
Object and field access, apps, tabs, record types, page layouts, and system permissions.
Role
Access to records owned by other users, together with org-wide defaults and sharing rules.
Required?
Profile
Yes. Every user has one profile.
Role
No. A user can have no role or one role.
Where to find it
Profile
On the user record and under Setup → Profiles.
Role
On the user record and under Setup → Roles.
What it cannot do
Profile
Open records the user doesn't own and that aren't shared with them (except through "View All" / "Modify All" permissions).
Role
It does not grant object or field permissions.
What it looks like when set wrong
Profile
The user may not have access to the required tab, object, field, or New/Edit action.
Role
The tab works, but list views and reports show fewer records than a colleague sees.
Example
Profile
A sales rep's profile lets them create and edit opportunities.
Role
A manager can access opportunities owned by users below them in the role hierarchy, subject to sharing settings.

Profiles and roles have different functions. Every user must have a profile, while a role is optional and is used only when the organization’s record-sharing setup includes roles.

Warning icon

Tip

Use access to objects and fields when describing profiles and access to other users’ records when describing roles. This keeps the distinction clear.

How Salesforce Decides What a User Can Access

Think of Salesforce data like a spreadsheet. A user’s profile determines which sheets they can open and which columns they can view or edit. Org-wide defaults, roles, and sharing settings determine which rows they can access. If the profile does not allow access to the sheet, Salesforce does not apply the rules that control access to individual rows.

Salesforce checks access in layers. The main layers are:

Object permissions → Field-level security → Record access

Object permissions decide whether the user can work with the object. Field-level security determines which fields they can see or edit. Record-level settings determine which individual records they can access.

This order helps when troubleshooting access problems. If a user cannot access an object, verify the object permissions first. If the user can access the object but cannot see a specific field, check the field-level security settings.

Step 1. Profile and permission sets: can the user access the object and field?

Start with object and field permissions. A user must have Read access to an object before record-level sharing can give them access to its records. For example, if a user cannot read the Account object, changing Account’s sharing settings will not give them access to Account records. Field access is a separate layer: a user can have Read access to Account but still lack access to specific fields on it, so check field-level security as well.

Both profiles and permission sets grant permissions for objects and fields. Salesforce suggests a permission set-based security model. Use profiles for basic settings and permission sets to grant extra access without creating more profiles. Permission set groups let you group related permission sets by job function. Muted permission sets let you turn off specific permissions within a group.

Warning icon

Tip

View All Records and Modify All Records object permissions, along with View All Data and Modify All Data user permissions, override sharing rules and settings. They do not override field-level security. If a user can see records they should not access, check these permissions and the user’s sharing access.

Step 2. Org-wide defaults: the baseline for records the user does not own

Organization-wide defaults (OWDs) set the baseline access to records for your internal users. Other features like the role hierarchy and sharing rules can grant additional access. They cannot restrict access below the OWD.

The following are the access levels you can choose from:

  • Private: Users can access records through ownership, permissions, the role hierarchy, manual sharing, sharing rules, or other applicable sharing mechanisms. For example, a sales rep can access opportunities they own, plus opportunities shared with them or made accessible through the role hierarchy.
  • Public Read Only: All users can view all records for the object but can’t edit them unless they have edit access through another mechanism.
  • Public Read/Write: All users can view and edit all records for the object.
  • Controlled by Parent: Access to a child record follows the user’s access to its parent record. For example, Contact access can be controlled by the related Account.

Some objects offer additional access levels. For example, Leads and Cases support Public Read/Write/Transfer, while Campaigns support Public Full Access.

Start with the most limited access that meets your needs, then give users more access through sharing. Increasing the default access, for example, from Public Read Only to Public Read/Write, takes effect right away. Reducing it takes effect after Salesforce recalculates sharing access.

To configure OWDs, go to Setup, enter Sharing Settings in the Quick Find box, and select Sharing Settings. Click Edit in the Organization-Wide Defaults area. You need the Manage Sharing permission.

Salesforce Sharing Settings page with the Organization-Wide Defaults table highlighted for Account and Contract.

Step 3. Role hierarchy, sharing rules, and manual sharing: who gets additional access

Once OWDs set the baseline, Salesforce can grant additional record access through these sharing mechanisms:

  • Role hierarchy: Users higher in the hierarchy can access records owned by or shared with users below them. For custom objects, you can disable this automatic access by deselecting Grant Access Using Hierarchies in Sharing Settings. This setting can’t be disabled for standard objects.

    Sharing Settings list of objects with the Grant Access Using Hierarchies checkbox selected for the Project object.
  • Sharing rules: Owner-based and criteria-based sharing rules extend record access to groups of users, including public groups and roles. Depending on your configuration, sharing can also use roles and subordinates or territory-based access.

  • Manual sharing: A record owner, a Salesforce admin, or a user above the owner in the role hierarchy can share an individual record with another user or group. By default, manual shares created by the previous owner are removed when record ownership changes. Salesforce also provides an org-level setting to keep manual shares when ownership is transferred.

Note icon

The exception: View All and Modify All

Some permissions bypass record-level sharing entirely.

  • View All Records: Gives access to all records of a specific object, regardless of sharing settings.
  • Modify All Records: Gives full access to all records of a specific object, regardless of sharing settings.
  • View All Data / Modify All Data: Provide the equivalent sharing bypass across the org rather than for a single object.

What a Profile Controls

A profile defines a user’s default settings and can grant permissions and access settings in Salesforce. Every user has exactly one profile and can have multiple permission sets and permission set groups. Salesforce provides standard profiles, including System Administrator and Standard User. You can clone an existing profile to create a custom profile.

Object and field permissions

Profiles can grant Create, Read, Edit, and Delete access for each object. They can also grant View All Records or Modify All Records, which override record-level sharing and give users access to every record of that object. These permissions don’t override field-level security.

Object Access page for the Account object in Object Manager showing which permission sets grant Read, Create, Edit, Delete.

At the field level, field-level security controls whether users can see or edit individual fields. Fields can be visible and editable, visible but read-only, or hidden.

Warning icon

Note

Salesforce recommends using permission sets and permission set groups to manage most user, object, field, and system permissions rather than creating a separate profile for every access combination.

System permissions, apps, tabs, and login restrictions

Profiles control the default app, default record types, page layout assignments, login hours, and login IP ranges. Login hours control when users can log in, and login IP ranges restrict which IP addresses they can log in from. These two login restrictions are configured on profiles, not permission sets.

Profiles can also contain system permissions such as API Enabled, Export Reports, View All Data, and Modify All Data. Use permission sets and permission set groups to manage user, object, and field permissions instead of creating separate profiles for every access combination. Keep profile-only settings such as login hours, login IP ranges, default apps, default record types, and page layout assignments at the profile level.

Limit View All Data and Modify All Data to users who genuinely need organization-wide data access. When users only need broad access to a specific object, View All Records or Modify All Records can be a more targeted alternative.

Salesforce profile system permissions list with the Modify All Data checkbox selected and highlighted.

What still lives on the profile when you use permission sets

Permission sets are now the recommended way to manage most user, object, field, and system permissions, but profiles still handle important default settings and restrictions. These include default apps, default record types, page layout assignments, login hours, login IP ranges, and password policies. Tab settings can be configured through either profiles or permission sets.

For example, a profile can provide baseline object access to a team, while a permission set gives additional access to specific users. If the profile grants Create but not Delete, you can use a permission set to give Delete access only to the users who need it. Permissions granted through profiles and permission sets are additive.

Warning icon

Tip

Salesforce previously announced that permissions on profiles would be retired starting with Spring ’26. It later cancelled that enforcement based on customer feedback and remaining feature gaps. Profiles still support permissions for now, but Salesforce recommends using profiles for baseline settings and permission sets or permission set groups to manage access.

What a Role Controls

A Salesforce role helps control record-level access through the role hierarchy. The hierarchy works with organization-wide defaults (OWDs) to check which records users can access, while sharing rules, teams, manual sharing, and other sharing features can extend access beyond that. Roles don’t control object or field permissions. Profiles and permission sets control what users can do with objects and fields.

The role hierarchy: access goes up, not sideways

The role hierarchy opens up access vertically. Users in higher roles can access records owned by, or shared with, users in roles below them. Access doesn’t automatically flow sideways or downward: users in the same role don’t automatically see each other’s records, and users lower in the hierarchy don’t automatically see records owned by users above them.

For example, a VP of Sales has two regional managers: East Region Manager and West Region Manager. Each manager has several sales reps. Assuming the OWD is Private and hierarchy access applies to the object, the East manager can access records owned by, or shared with, the East reps, but not the West reps’ records. The VP can access records for reps in both regions because both managers sit below the VP.

A role doesn’t need to match your org chart. Think of each role as a level of data access that a group of users needs.

Grant Access Using Hierarchies: Standard vs. Custom Objects

Grant Access Using Hierarchies determines whether users higher in the role hierarchy automatically get access to records owned by, or shared with, users below them.

For standard objects, you can’t disable the Grant Access Using Hierarchies setting, although hierarchy-based access isn’t enabled for every standard object.

Sharing Settings edit page listing standard objects with Grant Access Using Hierarchies checkboxes selected and disabled.

For custom objects, it’s enabled by default and can be disabled in Sharing Settings, except when the object’s OWD is Controlled by Parent. Disabling it stops managers from automatically inheriting their subordinates’ access. Other sharing methods can still grant it.

Access Settings on the Role Itself

The role edit page can include separate access settings for Opportunities, Cases, and Contacts. These settings control the role’s access to records associated with accounts its users own, even when someone else owns those records.

For example, Opportunity Access can allow users in the role to:

  • Access only the opportunities they own.
  • View all opportunities associated with accounts they own.
  • Edit all opportunities associated with accounts they own.

Case and Contact settings work the same way. These settings aren’t available when the related object’s OWD is Public Read/Write, because the role hierarchy can’t restrict access further than the OWD. For example, Opportunity Access doesn’t appear when Opportunities are Public Read/Write.

Where Else Roles Matter

Roles also affect reports. Filters such as My Team’s Opportunities use the role hierarchy to determine which users belong to the current user’s team. A user without a role isn’t part of that hierarchy, so these filters may not give them a team view.

Roles also determine the forecast hierarchy when the org uses role-based forecasting. Forecasts roll up through that hierarchy, and admins can adjust which users and forecast managers it includes.

Warning icon

Tip

Roles have less impact on record access in orgs with broad OWDs. In orgs with private OWDs, they can have a much larger effect on both record access and reporting.

What Happens When a User Has No Role?

A user without a role sits outside the role hierarchy. They can still access records they own and records shared through OWDs, sharing rules, teams, manual sharing, and other sharing mechanisms, but they get no access through the hierarchy.

Salesforce doesn’t require a particular approach for administrators. Some orgs place them at the top of the hierarchy, while others leave them without a role. Administrator access comes from permissions, not roles. 

View All Data and Modify All Data, which the System Administrator profile includes, provide access that doesn’t depend on the role hierarchy, so an administrator with them doesn’t need a role to view or modify records. Removing an administrator’s role can still change what role-based reports show, such as My Team’s filters.

Why a User Can't See or Edit a Record

When access breaks, start with the symptom and identify the layer that controls it. Salesforce access depends on object permissions, record-level access, and field-level security. Object-level View All Records and Modify All Records, and system-level View All Data and Modify All Data, can override record-sharing settings.

Symptom
No tab or New button for an object
Layer to check
Object permissions and tab visibility
Where to look
Read and Create permissions in the profile or permission set; tab settings
Symptom
Tab works, but list views show fewer records
Layer to check
Record-level access, then list-view filters
Where to look
Organization-Wide Defaults, the owner's position in the role hierarchy, sharing rules, manual sharing, teams, territories, restriction rules, and the list view's filter scope
Symptom
Can see a record but cannot edit it
Layer to check
Object permission, record access, then other blockers
Where to look
Edit permission, record-level access, approval locks, validation rules, and field-level security or page-layout restrictions if only specific fields cannot be edited
Symptom
Can edit records but cannot delete someone else's record
Layer to check
Delete permission and record-level delete access
Where to look
Confirm Delete is enabled on the user's profile or permission set. Then check whether the user owns the record, is above the owner in the role hierarchy, or has Modify All Records on the object. Modify All Data grants Modify All Records across objects
Symptom
Delete permission and record access are correct, but deletion still fails
Layer to check
Relationship restrictions and automation
Where to look
Check for an Apex before delete trigger or other automation that blocks the delete. For lookup relationships, check the delete behavior on the lookup field. The "Don't allow deletion of the lookup record that's part of a lookup relationship" option blocks deletion of the referenced record, and a required lookup also blocks it, because the value can't be cleared.
Symptom
Can see a record but not a specific field
Layer to check
Field-level security, then page configuration
Where to look
Field-level security in the profile or permission set; page layout, Lightning record page, Dynamic Forms, and record type
Symptom
Manager cannot see a rep's records
Layer to check
Role hierarchy and object permissions
Where to look
Role hierarchy; Grant Access Using Hierarchies for applicable custom objects; the manager's object permissions
Symptom
Report or export shows fewer records than a colleague's
Layer to check
Record-level access, then report settings
Where to look
Organization-Wide Defaults, roles, sharing rules, restriction rules, Show Me, report filters, report type, report and folder access, and field-level security
Symptom
Need to know why a user can or cannot see one record
Layer to check
Record-level access
Where to look
Open the record's Sharing Hierarchy from the Action Menu to review who has access and why. If Sharing Hierarchy isn't available, add the action to the page layout

Common Role and Profile Mistakes

Moving someone to a higher role to fix visibility

Moving a user higher in the role hierarchy can give them access to records owned by users below. This may solve a visibility issue but can also show unnecessary records. Keep the role hierarchy aligned with the reporting structure. For cross-team access, use a sharing rule.

Cloning a profile for every small difference

Creating a profile for every permission variation makes access harder to manage and audit. Each user has one profile and can have multiple permission sets. Keep profiles limited to core access requirements, then use permission sets or permission set groups for extra permissions.

Opening org-wide defaults to stop complaints

Changing an object’s organization-wide default to Public Read/Write can stop access complaints but also gives users broad access to its records. Use restrictive defaults with sharing rules when you need to control record visibility. In a small organization where everyone needs access, a broader default may be simpler. Avoid it for sensitive objects.

Asking for a “System Administrator role”

“System Administrator” is a profile, not a role. A role determines record access through the role hierarchy. A profile provides permissions and settings. An organization can have a role named “System Administrator,” but the name itself grants no administrative access. Identify the required permissions and record access, then configure the appropriate profile, permission sets, and role.

Where Permission Sets Fit In

A permission set is a collection of permissions that gives users additional access in Salesforce. Each user has one profile but can have multiple permission sets. Permission sets extend the access provided by the profile. 

They do not remove permissions granted by the profile. A muting permission set can mute permissions within a permission set group, but the user keeps the permission if it is also granted by the profile, a permission set assigned outside the group, or another permission set group.

For example, a team profile can let users create Accounts and Opportunities, while a permission set allows only selected users to delete them.

For more details, see the Permission Set page in our glossary

Auditing Roles and Profiles Across Your Org

As your Salesforce org grows, it becomes harder to track access across profiles, permission sets, and roles. Similar profiles may accumulate, while permission sets and permission set groups add access. The role hierarchy also affects record-level access.

Use this checklist:

  • Count your profiles and look for duplicates or similar profiles.

  • Identify users with View All Data, Modify All Data, or API Enabled. Check whether these permissions come from a profile, permission set, or permission set group.

  • Review the role hierarchy to make sure it still provides the intended record access. For custom objects, check Grant Access Using Hierarchies.

  • Check org-wide defaults for objects that contain sensitive data.

  • Review admin and integration users to make sure they have only the access they need.

Review Access in Bulk

Checking object and field access across multiple profiles and permission sets can take time in Setup. XL-Connector lets you download object permissions and field-level security for selected profiles, permission sets, and objects into Excel.

Conclusion

A profile defines what a user can do. A role, together with org-wide defaults and sharing, determines which records the user can see. Permission sets can add more access. A user needs the right combination of these settings. The next time someone says, “I can’t see it,” check the layers in order: permissions, record visibility, and sharing.

FAQ

Can a Salesforce user have no role?

Yes, a Salesforce user can have no role. Salesforce requires every user to have a profile, but assigning a role is optional. A user without a role can still access records based on their permissions and sharing settings. However, the lack of a role can affect record visibility and report results.


Can a Salesforce user have more than one profile or role?

No, a user can have only one profile and one role. You can assign multiple permission sets and permission set groups to the same user. This lets you add specific permissions without changing the user's profile or role.


Does a System Administrator need a role?

No, a System Administrator does not need a role. The System Administrator profile includes broad permissions, including View All Data and Modify All Data, so the user can access records without relying on the role hierarchy. Some organizations still assign administrators a role when they need them included in the hierarchy.


What if the profile allows access but the role does not?

The profile and role control different types of access. A profile or permission set provides object and field permissions, while organization-wide defaults, roles, sharing rules, and other sharing settings control access to records. A role does not override object permissions.


Can a permission set take away access?

Generally, no. Permission sets add permissions rather than remove them. To revoke access, you must remove the permission from its source. Permission set groups can mute selected permissions for users assigned to that group, but muting does not remove the same permission granted through another permission set or profile.


Is Salesforce removing profiles?

No, Salesforce is not removing profiles. It still recommends a permission-set-led model, so use permission sets and permission set groups for new access and keep profiles for baseline settings.

|
Rajeshwari Jain

Rajeshwari Jain

Content Manager

About the Author

Rajeshwari Jain is a Technical Support Specialist and Content Writer at Xappex. She applies her practical experience to assist customers and create articles on how Xappex tools work with Salesforce to improve data management and increase efficiency.

She began her IT career in 2022 as a Quality Assurance professional before transitioning into Salesforce administration and technical writing in 2023. With Salesforce Certified Administrator and Associate certifications, Rajeshwari writes blogs on Salesforce flows, admin tools, and updates to expand her skills outside of work.

In her free time, she enjoys reading tech blogs and experimenting with new tools.

Feel free to reach out to Rajeshwari for collaborations or to check out her Salesforce-focused content.