[SalesForce] Controlled by Parent and Sharing under the hood

I was going reading through this documentation Designing Record Access for
Enterprise Scale
and trying to find out how Controlled by Parent sharing works.

For one of performance tuning options documentation states that:

To avoid creating implicit shares, configure child objects to be Controlled by Parent wherever this configuration meets security requirements.

And as per my understanding:

  • For Master-Detail relationship Controlled by Parent is applicable and in that scenario ChildShare object will not hold any records.
  • And if OWD of Parent is NOT Public Read/Write then it could have share records depending on role hierarchy, territory hierarchy and queues.
  • Implicit sharing is not applicable for Custom objects.

Does the ParentShare record govern the sharing of Child's share under the hood for Controlled by Parent?

Any documentation or link on this understanding is appreciated.

Best Answer

You are right here that ParentShare governors the sharing of the child records as well when the Security setting is set to controlled By Parent.

Its not well documented anywhere .

Implicit sharing is only for few standard objects and setting "Controlled By Parent" avoids creating childshare records and parentShare manages everything just treating like master detail for sharing purposes .

OWD metadata should tell the sharing type and metadata will also reveal the parentId field and the parent object for the given child object. SFDC grabs parentId for child record and looks for same in ParentShare Table to decide whether to show the records or not .

Related Topic