Object Level Access Vs Record Level Access in Salesforce

Object Level Access Vs Record Level Access  :

If you are new to Salesforce you might have conflicted between Object Level Access and Record Level Access .  Don't worry at the end of the article you will be clear with both of them .

In salesforce you can allow specific users to access specific fields in a specific object and then restrict the each user to which records they are allowed to see . 

To control data access promptly, you can allow particular users to view specific fields in a specific object, but restrict the individual records they're allowed to see.

Object Level Access : 

First Decide which objects a specific user should have access to .
Let us take an example :We have object Called Student and we have also have users                           userA,userB with ProfileX and UserC,UserD with ProfileY. 

Step 1 : Here let us take an object 'Student' to understand the process easily ,First Decide who are all should have access to Student Object. 
 Ans :All the users present in ProfileX should have access to Student object .

Step 2:Since only ProfileX users should have access to Student object ,we will give read/edit/create access to ProfileX .

Till now you have only provided Object Level Access. From the above access user A can read/edit/create ONLY his own records. He cannot access UserB owned records even though UserB is from same profile .

Record Level Access : 

This Will decide which user has access to what records individually. 
Open Setup>Sharing Setting 

Here you will have below option to provide for individual object :

1.Private (Only Record owner and System Administrator can have access to records)
2.Public Read Only(All users can view the records)
3.Public Read/write(All Users can view/Edit records)

Since you wanted to provide student object access to only set of users ,Provide OWD(Organization Defaults/Sharing Settings) to Private .

Now Access level for Student Object is Private and ProfileX has read/edit/create access,All the users under ProfileX can read Create/Read/Edit their Own records .

Example : 

UserA created Tony student Record .

UserB created Victor student Record .

Now UserA can have only access to Tony student Record .UserA cannot access UserB's Victor student Record record even though both are from same profiles, Since OWD is Private users cannot access each other's data .

If other users require access to all the Student records irrespective of  the Owner , Then we can extent access by using Sharing rules or Apex Sharing . 

We will discuss more about Apex Sharing in other Posts .

We hope you are clear with the process now .

If you still require further clarifications,Please let us know in the comments .

Happy Learning☺☺☺

6 comments:

  1. if owd is public read write and profile is read only. Now tell me whether the user can able to create the record or not

    ReplyDelete
  2. Hello. What if ownership doesn't matter in an org? (we also don't use Roles). We have OWD on Relationships set to Private and then opened up Object perms on a Profile to CRUD. Is it reasonable to expect the user to be able to have CRUD on all Relationships, and that we can do this at the Profile level with several objects? Or do we need to create a separate Sharing Rule for every object?

    ReplyDelete
    Replies
    1. When OWD is set to Private there is no question of access to others records. Access must be opened up via sharing rules/Apex Sharing

      Delete
  3. OWD=private
    Profile=CRED access given access for his own record .but user not only seeing record of other object data he can delete the other record wat to do for that please suggest me IAM beginner for Salesforce

    ReplyDelete
    Replies
    1. check if there's any sharing rule (sharing records of others by sharing rule)

      Delete