I use query like below to find what Profiles and Permission Sets give what kind of permissions to a specific field:
SELECT Parent.ProfileId, Parent.IsOwnedByProfile, ParentId, Parent.Label, Parent.Profile.Name, Field, PermissionsEdit, PermissionsRead FROM FieldPermissions WHERE Field IN ('Account.Active__c') AND SobjectType = 'Account'
When field is not marked as Required: The above query is returning rows.
When field is marked as Required: The above query is returning 0 rows.
Additional Info: I have seen this same behavior in more than one org and same result whether I run this query from developer console, SFDX CLI or Workbench.
Why this query is not returning any data when field is marked as Required?
If I don't grant access to a field for any profile and then make that field as required, System is automatically granting access to that field to all profiles. That means, If a field is marked as required, all profiles get access to that field but why
FieldPermissions table don't have entry for that?