I keep running into cases where an Azure resource exists and appears to be configured correctly, but one person can perform an action while another person cannot. Troubleshooting usually means checking role assignments, scopes, inherited permissions, policies, management groups, and other settings that might block access. How do you usually identify the exact cause? Is there a reliable way to review effective permissions and differences between users without manually checking dozens of settings?
4 Answers
The error message is often more useful than it looks. It may identify a missing role, a policy denial, a service principal without access, or another specific authorization problem. I usually read the full error first and then verify the named principal, action, and scope.
Azure Resource Graph can help you inventory access across the environment. The AuthorizationResources table is useful for querying role assignments and seeing who has access at which scope. For broad administrative access, management groups can be useful, but permissions should otherwise be applied at the narrowest scope that meets the person’s needs.
Comparing users is a practical approach when one person works and another does not. Export or query their role assignments, then compare the scopes and conditions rather than just looking for the same role name. Keeping role-based access tidy is important because inherited assignments can become difficult to understand as the environment grows.
Start with the resource’s effective permissions or access-checking view, then work backward through the scopes if nothing obvious appears. Check the resource, resource group, subscription, and management group levels, along with inherited assignments and deny assignments. This is much faster than opening every settings page at random.

Inherited deny assignments are especially easy to miss. I once spent hours on a VM deployment issue that turned out to be a deny assignment inherited from a management group several levels above the subscription.