2

I have queried the UserRecordAccess table previously to determine a user's permission for records.

Is there a way to go one step further and determine why the values are what they are?

For example, if a user has access to account ABC I would like to find out which Profile, Sharing Rule, etc. was responsible for enabling access.

1
  • A bit wide question to give an answer, I asked something similar salesforce.stackexchange.com/questions/1508/… but as of today I dont think you can grab all easily. You may have to write too much code for getting this basic info
    – Rao
    Sep 4, 2013 at 17:03

1 Answer 1

1

UserRecordAccess does not tell you why a user has access, for its purpose is to tell you the user's effective access level without the hassle of checking a half-dozen different objects to determine a user's effective level.

Sharing is determined by the least restrictive of:

  • Organization Wide Defaults
  • Explicit Sharing
  • Ownership
  • Role Hierarchy
  • Permission Sets
  • Profile Permissions
  • Sharing Rules

The user might have several reasons why they have a particular level of access (e.g. a sharing rule plus role hierarchy). You can query most of the other settings to determine why, if you really need to.

0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .