当前位置:网站首页>Profiles vs Permission Sets
Profiles vs Permission Sets
2022-07-27 18:07:00 【sf_ wilson】
Do not confuse Profiles and Permission Sets with Roles
The profiles and permission sets are configuration items in Salesforce that will allow us to control different types of functionalities and the roles with allow us to control record visibility primarily.
- Role: “Salesforce offers a user role hierarchy that you can use with sharing settings to determine the levels of access that users have to your Salesforce org’s data. Roles within the hierarchy affect access to key components such as records and reports” (Help-User Role Hierarchy).
- Profile: “Profiles define how users access objects and data, and what they can do within the application. When you create users, you assign a profile to each one” (Help-Profiles).
- Permission Set: “A permission set is a collection of settings and permissions that give users access to various tools and functions. The settings and permissions in permission sets are also found in profiles, but permission sets extend users’ functional access without changing their profiles” (Help-Permission Set).
From the object (records) point of view, the objectives of each one can be confused.

There are other considerations to take into account to understand the differences between them:
- The user can have only one Role (optional, but strongly recommended).
- The user must have one Profile (required).
- The user can have several Permission Sets assigned (optional).
What functionalities are controlled by Profiles and Permission Sets?
The following image shows that the functionalities controlled by a Permission Set are a subset of those controlled by a Profile. But that doesn’t mean that a Permission Set is a subset of a Profile.
We can set almost everything with a checkbox value, except for Login Hours, Login IP Range and Page Layout Assignment.



Understanding the checkboxes values in Profiles and Permission Sets
The system will first apply the user’s Profile permissions and settings and after that, if there is a link between the user and one Permission Set, the system applies the Permission Set permissions and settings.
The Profiles have the potential to allow or deny the permissions of the user, but the Permission Sets are only able to enable permission that was denied by a Profile. In both, Profiles and Permission Sets, there are several checkbox settings like Enabled, Read, Edit, etc. For each checkbox value combination, the following table shows the implication of a Profile setting and the effect of the Permission Set.
Profile | Permission Set | Permission Set Effect |
| CHECKED (the user has the permission granted) | CHECKED | Doesn’t have any effect, the Profile already set the permission. |
| CHECKED (the user has the permission granted) | UN-CHECKED | Doesn’t have any effect, the Profile already set the permission. |
| UN-CHECKED (the user doesn’t have the permission granted) | CHECKED | The user has the permission granted. |
| UN-CHECKED (the user doesn’t have the permission granted) | UN-CHECKED | Doesn’t have any effect, the Profile already set the permission. |
We can see that the Permission Set is useful only when a Profile denies permission to a user in a particular object or configuration item.
For Tab Visibility (that does not use checkboxes as settings), the logic is the same.
From a strict point of view of CRED (Create, Read, Edit, Delete) properties on objects and fields, the following image shows the differences between Profiles and Permission Sets.

Profiles vs. Permission Sets: best practices
The following are recommendations related to Profiles and Permission Sets:
- Keep the numbers low: try to use the minimum number of Profiles possible, and to grant more permissions to some users, create a Permission Set. But keep in mind that a low number of Permission Sets is good too.
- Functional orientation: the Profiles are tightly related to the Role or job that the user does in the company. And so, they are functionally oriented by default. Create the Permission Sets in the same way, for instance, having a Permission Set “Transfer and Delete Accounts” is better than one named “Marketing Manager P.S.”.
- Deny when possible: try to be as restrictive as possible with the permissions granted by a Profile. It is better to have one Profile “Sales Profile” than “Sales Rep Profile” and other named “Sales Manager Profile.” Any extra permission that the sales manager needs; can be granted through a Permission Set. For instance, if in the company, the sales manager will be allowed to delete Accounts and not the sales representatives, then we create one Profile (Sales Profile) that does not allow to delete Accounts, and we assign it to all the sales users. We then create a Permission Set (Delete Accounts P.S.) assigned to the sales manager only; that will grant the Delete Account permission. Following this practice will allow you to keep the number of Profiles low.
- Modular and Reusable: if you think about your Permission Sets as modular sets of extra permissions, where you will grant as many permissions as needed; you will be able to reuse them. For instance, if you followed point 3 above, the Permission Set in the example can be assigned to the sales manager and to the marketing manager too (if needed). Following this practice will allow you to keep the number of Permission Sets low.
Wrap Up
The Profiles are the core configuration item when you want to grant permissions to many functionalities in Salesforce. They have been there for a while, but because the administrator user ends up creating many profiles, one for each user and particular needs, Salesforce created the Permission Sets to avoid the situation. The Permission Sets are Profiles complement that adds permissions but not revoke them.
边栏推荐
- 【Codeforces】 A. Computer Game
- Compilation and testing of raspberry pie driver code
- 【Codeforces】 B. Make it Divisible by 25
- Convolutional neural network -- Translation of yolov2 (yolo9000) papers
- How to develop an online Excel spreadsheet system (Part 1)
- Oracle 11g database installation tutorial
- hutool- 数字计算
- 如何限制root远程登入,使普通用户拥有root权限
- Personal understanding of convolution calculation process of convolution neural network
- #夏日挑战赛#【FFH】实时聊天室之WebSocket实战
猜你喜欢

Some suggestions for writing original technical articles

Likeshop takeout ordering system "100% open source without encryption"

JDBC connection database reading foreground cannot display data

Wechat applet to make calls

7月第4周易盾业务风控关注 | 最高法对APP强索个人信息进行规制

What should we pay attention to when choosing the LED display screen of the stadium

Knowing things by learning | app slimming down, the way of safety reinforcement under the new generation AAB framework

js实现右键菜单栏功能

Personal understanding of convolution calculation process of convolution neural network

TCP connection status identification (syn, fin, ACK, PSH, RST, urg)
随机推荐
likeshop外卖点餐系统「100%开源无加密」
面试好难啊!蚂蚁金服的六轮面试我是强撑过来!差点OUT(面试复盘)
快解析结合华途文档加密软件
Yyds dry inventory interview must brush top101: specified interval reversal in the linked list
Zhengzhou University database course resource description
@Scheduled 和Quartz
工信部再治数据安全,网易易盾“隐私合规”守住企业经营底线
How to restrict root remote login so that ordinary users have root privileges
Fast parsing combined with Huatu document encryption software
Personal understanding of convolution calculation process of convolution neural network
golang worker池
知物由学 | 小游戏的安全风险在哪里?
In the fourth week of July, Yidun business risk control focused on the supreme law to regulate app's forcible request for personal information
CPU introduction
Knowing things by learning | app slimming down, the way of safety reinforcement under the new generation AAB framework
JDBC connection database reading foreground cannot display data
Cow! His secret is to reproduce the paper in 2 hours——
帮扶、提振、担当,第六届土巴兔718全民家装节的新价值和意义
Fast analysis combined with Haidian medicine
Knowledge dry goods: basic storage service novice Experience Camp
