This question may sound very preliminary to many users but please help as I am unable to understand Role hierarchy concept.
Say there are two users in salesforce viz user1-profile1 and user2-profile2. There is a custom object named project. profile1 has read only access to project while profile 2 has read/write accessibility, therefore the owd setting for project object should be public read only. Now since it is the most strictest permission for project object, There has to be some way for all users belonging to profile2 to have read/write access on this object. What is the means to achieve this?
1 Answer
You are mixing up profiles with roles, they do different things. A profile controls whether the user read/write has access to an object or a field, and controls the permissions to create or delete an object. Also, public read only is not the strictest owd setting, the most restrictive is "Private", meaning only the owner of the record OR users above him in the hierarchy can access the records.
Assuming you have two users with sibling roles (lets call them a and b) owning different records and you wanted to give role B access to the records owned by Role A, you can create a sharing rule to give read/write access to role B to the records owned by role A. This is the most common way of doing this but there are other ways..
In summary, profiles determine the privileges a user has at the object/field level (read, create, edit, delete, view all, modify all). Roles determine how records are shared.