Field Level Security in Microsoft Dynamics 365 CRM

Field-level security in Microsoft Dynamics 365 CRM apps allows you to create precise controls as to which users can edit which fields. It’s a very useful but often overlooked and forgotten feature.

I have trained many of Encore’s D365 CRM clients on how to set up field-level security for their users. Below are step-by-step instructions for how to do it, which is fairly straightforward.

The harder part is thinking through the human element of who in your company should and should not have what level of access to which fields. I’ll give you some pointers on that too.

Table of Contents

Note: There are now five different Dynamics 365 apps that serve various CRM needs, including Dynamics 365 Sales, Dynamics 365 Customer Service, and more. In some contexts, you may also see these products referred to as “Customer Engagement” or “CE” apps.

Field-level security works the same in all of the apps, and these settings will be shared across all the CE apps in your environment.

Dynamics 365 CRM apps allow you to add field security profiles to both system and custom fields. Setting up field security is a two-part process:

  1. Enable your field for field-level security.
  2. Set up a field security profile to define the privileges granted to your user(s) and/or team(s).

Security profiles can be configured to grant a combination of the following 3 permissions at the field level:

  • Read (read-only access to field data)
  • Create (users or teams can add data to this field when creating a record)
  • Update (users or teams can update the field’s data after it has been created)

The business requirement for our example will be an organization that does not want certain users to be able to Create or Update the Actual Revenue Field of Opportunities.

Field Security Considerations

System Administrators have all privileges on all field-level security fields. Users and Teams can be added to multiple field security profiles. Once you have set your field security, users who do not have Read permission for the field will see the field itself but will only see “*****” instead of the data. The data values will be masked.

How to Enable Field Level Security for a Field

The steps below outline how to enable this feature in the classic Advanced Settings area within the CRM system. If your CRM environment has Microsoft’s New Settings experience enabled, the screens will appear slightly different for you, although the steps will remain the same.

1. Click on the Settings icon located on the top-right of your screen:

Screenshot of a Sales Activity Dashboard in a CRM system, featuring sections for Open Opportunities, All Opportunities, and Open Leads, with Field Level Security ensuring sensitive data is protected. Menu bar and various icons appear at the top.

2. Select Advanced Settings:

A dropdown menu is open under a gear icon, showing options such as Personalization Settings, Field Level Security, Advanced Settings (highlighted with a red box), Toast Notification Display, About, Privacy & Cookies, and Software license terms.

3. The Advanced Settings Tab will appear. Click on the down arrow next to Settings and Solutions:

Screenshot of the Dynamics 365 interface showing the Settings menu. The Customization section is highlighted, specifically the “Solutions” option. Field Level Security and other options like Business Management and System are also visible.

4. Select a solution. In this example, we will select Iteration 1:

A Dynamics 365 Solutions page showing a list of solutions. The Iteration 1 solution is selected and highlighted with a red box. The table displays columns for Name, Display Name, Version, Installed On, Publisher, Description, and Field Level Security.

5. The solution window will appear. Click on Entities -> Opportunities -> Fields:

Screenshot of a Power Apps interface showing the Opportunity entity’s Fields tab, listing field names, schema names, types, and Field Level Security settings in a table format. The left pane highlights the Opportunity and Fields sections.

6. We will select the Actual Revenue field. You can select any field of your choice or create a new field:

A screenshot of a data table with columns for name, schema name, display name, type, field type, searchable, Field Level Security, audit status, customizable, and description. The row for actualvalue is highlighted with a red box.

7. The field pop-up window will appear. Click on Enable under Field-level security profile. Click on Save and Close:

Screenshot of the Power Apps interface showing the Actual Revenue of Opportunity field settings. The Field Level Security option is highlighted, with Disable selected instead of Enable.

8. Publish all customizations:

Screenshot of Power Apps showing the Opportunity Fields section. The Publish All Customizations button is highlighted above a table listing fields with details like name, schema name, type, and Field Level Security settings.

9. Add your field to the form if it is not already present.

10. Publish all customizations.

Next, you will need to create a new field security profile to define your field’s security settings.

How to Create a Field Security Profile

Make sure you have the System Administrator security role or equivalent permissions.

1. Click on the Settings icon located on the top-right of your screen:

Screenshot of a Sales Activity Dashboard with sections for Open Opportunities, All Opportunities, and Open Leads. The top menu bar shows action icons, navigation options, and highlights Field Level Security controls in use.

2. Select Advanced Settings:

A dropdown menu under a gear icon with options like “Field Level Security,” “Advanced Settings” highlighted in red, along with Personalization Settings, About, Privacy & Cookies, and Software license terms.

3. The Advanced Settings Tab will appear. Click on the down arrow next to Settings and choose Security:

Screenshot of the Dynamics 365 Settings menu, highlighting the Business Management dropdown and the Security option—featuring Field Level Security—in blue and white tiles.

4. Select Field Security Profiles.

Note: You can also add Field Security Profiles to a solution if you need to export and import them later.

Screenshot of a Power Apps interface displaying a solution named "Information" with entities like "Base Security Profile," "Opportunity," and "Opportunity Line" in a table view, highlighting their properties and Field Level Security settings.

Note: Your system will already include a default System Administrator Field Security Profile which automatically grants Read, Update and Create permission to all fields enabled for field security. You cannot delete or modify this security profile.

5. Click on New to create a new Field Security Profile:

Screenshot of the Dynamics 365 Field Security Profiles page, displaying a list of profiles with names and dates. A red box highlights the New button.

6. Enter a name and a description (optional) and click on Save:

Screenshot of a Power Apps window showing the creation of an Actual Revenue Field Security Profile with Field Level Security features. Fields for Name and Description are highlighted in red, and the Save and Close button is visible in the toolbar.

7. Under Common, click on Field Permissions:

Screenshot of Power Apps showing the Field Security Profile: Actual Revenue Field Security Profile page, with the Field Level Security permissions option highlighted in the left sidebar.

Note: Every Field Security Profile will list ALL fields for which field security is enabled and every new field will default to No for all privileges.

8. Select a field, and then choose Edit:

A Power Apps Field Permissions screen shows a highlighted “actualvalue” field under Field Level Security Profile settings, with the Edit button selected. The actualvalue field is checked and listed as Currency type in the Opportunity entity.

9. The Edit Field Security pop-up window will appear. Select the permissions that you want to assign to users or teams, and then choose OK. In this example, I want the group of users to be able to Read the Actual Revenue, but not change it or enter a brand-new value. Click on OK to confirm:

A settings window titled Edit Field Security displays Field Level Security options to allow read, update, and create permissions, with Allow Read set to Yes. The OK button is highlighted.

10. Click on Save to commit this modification to the system.

How to Add Users and Teams

1. Under Members, select Teams or Users. We will demonstrate the functionality with users:

Screenshot of a Power Apps Field Security Profile page titled Actual Revenue Field Security Profile, showcasing Field Level Security settings with the Users option highlighted under Members in the left sidebar.

2. On the command bar, select Add:

Screenshot of Power Apps showing the Users section in a Field Level Security profile. The Add button is highlighted in red, allowing users to add members. The interface displays columns for name, business unit, and status.

3. In the Look Up Records dialog box, select the user(s) or team(s) which should have the security settings applied for the field and then click on Select.

4. Repeat the preceding steps if you would like to add multiple teams or users, and then choose Add.

Field Security Profiles vs Security Roles

In Dynamics 365 CRM apps, Security roles control access to the different types of records in the system. Field security profiles add an additional layer in the Dynamics CRM security model by controlling user access to specific fields within the records users are permitted to work in.

Security roles grant table-level privileges to create, read, write, append, append to, and share records in CRM. In addition to privileges, roles specify the user’s depth of access when working with those records. For example, a role may grant access to a record type with Organization-level depth of access, which would allow users to work with all records in the table. Other levels of access restrict users to only working with records they own, or only records within their business unit.

I typically implement field-level security for organizations that have both sales and accounting users working with customer Accounts. This scenario is desirable for information sharing and collaboration; however, there are some Account fields that are best left to accounting team members to manage, such as Credit Hold, Payment Terms, Credit Limit, and Credit Rating. Once we enable field-level security for those Account fields, we can create two field security profiles: one for accounting team users, who will be allowed to Read, Create, and Update those protected field values and a second one for sales users, who will only be permitted to view those field values.

Importantly, field security profiles work with security roles, they do not work around them. Field-level security does not override the permissions granted or constrained by a security role. For instance, a user could be added to a field security profile that would potentially allow them to change a specific Account field. But, if they don’t have a security role that grants them access to edit Account records, that profile doesn’t matter for them.

In other words, security roles and security profiles grant access to different levels of data. You need both for a smoothly functioning system.

What Is “Column-Level Security”?

Column-level security is Microsoft’s official new name for field-level security in Dynamics 365 CRM apps. In fact, fields are now technically called columns. However, most customers and consultants still find it more intuitive to call them “fields” and “field-level security.”

If you administer CRM from the Power Platform Admin Center, look for these new terms in Settings > Users + permissions > Column security profiles.

Best Practices for Field-Level Security

New-User Onboarding and Job Changes

System administrator training should include how to add and remove users and teams in security level profiles, because this is a step that is often overlooked in new user onboarding and when users change jobs within the organization.

Customer Privacy

If your organization has legal obligations to protect customer privacy, or if you collect personal or sensitive data about your customers, I recommend adding field-level security to protect their information and stay in compliance. You may have legitimate business reasons for collecting certain types of personal information, but not everyone in your organization needs access to it. Consider adding restrictions for viewing fields like Birthdate, Gender Assigned at Birth, Race/Ethnicity, and SSN/Tax ID.

Enable Auditing on Protected Fields

For additional oversight of certain sensitive fields, you can enable auditing in your system. When auditing is turned on for a table, then you can track changes to those fields and know who made those changes, and when they made them.

Do Not Use for Credit Card Numbers

As a rule, Encore does not recommend storing credit card numbers in your CRM system, even if the values are masked with field-level security. It does not offer enough protection for payment card industry (PCI) compliance, which mandates a very strict set of security requirements.

Work With Your Partner

The best practice in an implementation is for your Dynamics 365 CRM partner to set up your initial field level security settings and profiles, and also train your internal experts (system administrator, etc.) to use these tools after go-live. Usually, discussions about security role and field-level security requirements begin in the Analysis phase of the project, with all elements of the security model firmly in place before the User Acceptance Testing (UAT) phase begins. UAT should include test scenarios for each field security profile and related security roles to ensure the model works the way it is supposed to and that there are no unintended consequences.

At Encore, we enjoy solving tough Dynamics 365-related problems for our clients, and we love to educate all Dynamics 365 users on how to work faster and better in their systems. If you’re looking for a Dynamics 365 CRM Partner to provide support, training, integrations, or implementations with Dynamics 365 and the rest of the Microsoft stack, please contact us. We’d love to help.

Suggested Articles: