The first decision that needs to be made, as mentioned in the introduction, is whether you want to have an open organization, where all data is visible and editable by everyone, or whether any data needs to be restricted from being viewed or edited by certain people. Let's see how this works with a use case.
Using organization-wide defaults
A business use case
You are the Salesforce admin for XYZ Widgets. You need to limit the visibility of accounts to account owners and their managers only. The first step is to make sure the organization-wide (org-wide) default settings for the account objects are set to private.