Licensing Advent Calendar – Day 24 – Licensing tables

Licensing Advent Calendar

We reached the last day of the Advent Calendar, but I have more to share after Christmas. Come back to the Advent Calendar as I will add more days with more content. In this post, I will talk about the available tables in Dynamics 365 F&O that is used for the License Usage Summary page. This post is most technically oriented.

Licensing tables

In the previous days, I mentioned that a microservice is calculating the Dynamics 365 F&O license details across the tenant of an organization. From this source, tables are getting populated in each Microsoft-managed environment. The environment types are:

  • Production (LCS)
  • Sandbox (LCS)
  • Unified Development Environment (PPAC)
  • Unified Sandbox Environment (PPAC)
  • Unified Production Environment (PPAC)

On-premise environments, OneBox development environments, and cloud-hosted environments (Azure subscription) are not getting the license details pushed with the help of a data flow.

Especially for the license reporting, Microsoft created new tables in Dynamics 365 F&O, storing details about the license requirements. Note that regardless of whether you have enabled the User Security Governance features, these tables will be refreshed. In case you enable the feature, the data is directly visible on the Licenses Usage Summary page. The tables are read-only for customers and partners.

The number of tables and contents changed over the past months when Microsoft made changes to solve calculation and presentation issues. I will list the tables and their purpose below.

Out of the box, there are at this moment no data entities available for these tables. It would be of great help if Microsoft would add data entities or another API to be able to use the data in other applications directly.

LicensingAllSkus

This table has a list of all the Dynamics 365 F&O license SKUs. The priority (from low to high) indicates an order and price level from the cheapest to the most expensive licenses. In case the field GroupName has a value, this indicates that the licenses are grouped on the same level and you can choose which license will be assigned as a base or as an attach. There are two groups:

  • Base – Commerce, Finance, Supply Chain Management
  • Base – Human Resources, Project Operations

LicensingEntitlementObjects

This table is a list of all the objects (menu items, data entities, service operations) that can have a specific license requirement in Dynamics 365 F&O. It also includes the objects from ISV solutions and customizations. The field AOTChildName is used in case of data entities and service operations.

LicensingAllEntitledPermissions

This table has a record for each combination of known access level, object, and SKU. For each object and allowed SKU, there is a record where the access level is used as the maximum level for the SKU. E.g., for the menu item CustTableNew, there are only records with Write access for the SKUs Finance, Supply Chain Management, and the premium variants. Other license SKUs are listed with view access.

LicensingElementsRequiringEntitlement

This table contains the objects that have a requirement to be entitled for specific license SKUs. In a recent investigation, it seems that in case the field EnforceViewPermissions has the value True, this is overwriting a license level from write to read in case the LicensingAllEntitledPermissions record does have a record, but not for the read access level. I have sent a question to Microsoft to get some clarification.

LicensingRoleLicenseAssignments

This table is the base for the tab page Role licenses on the form Licenses Usage Summary.

LicensingUserDirectLicenseAssignments

This table contains the license requirements per user. In case there are multiple records for a single user, the CanBeAttach is enabled in case the user has another license assigned. This is an indication and not a mandatory requirement. Still, you can switch the base and attach if the licenses are in the same base group.

LicensingRolePermissions

This table is used to store all objects with the access level per security role. It is used on the Licenses usage summary to show the entitled objects versus the not entitled objects.

LicensingDutyPermissions

This table is used to store all objects with the access level per security duty. It is used on the Licenses usage summary to show the entitled objects versus the not entitled objects.

LicensingPrivilegePermissions

This table is used to store all objects with the access level per security privilege. It is used on the Licenses usage summary to show the entitled objects versus the not entitled objects.

LicensingUserEffectiveRoles

This table stores the effective roles for license calculation per user. It also includes records for users inheriting the security roles via Entra ID groups.

This table has, by default, the property AllowRowVersionChangeTracking enabled, which gives the option to include this table in the Synapse or Fabric link sync jobs.

LicensingUserPermissions

This table is used to store all objects with the access level per user. It is used on the Licenses usage summary to show the entitled objects versus the not entitled objects.

Licensing views

Next to tables, there are views available that combine various licensing tables or links to other security tables, such as the users table, for more detailed information. The views are used on forms to present the data for analysis.

Other community contributors

Related to the topic of Licensing tables, there is other content available on the internet shared by other people.

Alex Meyer wrote about the tables and provided an example for an SQL query to combine some of the tables above for a licensing overview: Current State of D365FO User Licensing – Alex Meyer

Brad Bateman provided a lot of feedback on the Viva Engage community related to improving the license calculations. In addition, he shared SQL statements that can be used for several analysis purposes: GitHub – batetech/batetech.d365fo.public

There is more…

During the Advent period, each day in December, I will share some thoughts and tips related to the Dynamics 365 user license enforcement. If you have questions about this topic, feel free to contact me via LinkedIn, the comments section below, or the contact form on this blog. I will then either update one of the planned blogs for the coming 24 days or answer questions in a new post.

Dynamics 365 Licensing Enforcement Advent Calendar



I do hope you liked this post and will add value for you in your daily work as a professional. If you have related questions or feedback, don’t hesitate to use the Comment feature below.


That’s all for now. Till next time!

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.