The presence of a relationship between two databases does not mean that everyone who can access the entity view of an item in one database can automatically see the linked items in the related database.
For example, imagine a user has Viewer level access to Database A but no access to a related Database B.
When they open an entity of type A, they will see that it has the possibility of being linked to entities of type B, but they will not be able to see anything from database B. They will not know what entities (if any) of type B are linked to the type A entity they are looking at.
This is a fundamental principle. Irrespective of what view you are looking at (entity view, table view, board view) you will only see entities that you have access to.
However, databases live in spaces, and so if you grant access to a space (in order for someone to see the views that live in the space) you are automatically granting access to all dbs in that space.
If this is not desirable, then the views and the databases need to be ‘decoupled’, by having them live in separate spaces.
In your case, it indeed sounds like it makes sense to have a space for Companies and Contacts, and a separate space for Leads and Opportunities. This means some people can be granted access to only the former space, and some people can have access to both spaces.
But the permissions are independent of views.
So you could, for example, create a table view of Opportunities in the space that contains the Companies and Contacts databases, without worrying about any data being exposed. Anyone who didn’t have access to the Opportunities database would not see any records in that view.
So to be clear, with respect to this:
there is no reason why Companies cannot be related to Leads and Opportunities. You will not expose data from these databases by creating a relationship.
On the Company entity view, the Opportunities relation field will not reveal anything to someone who does not have access to the Opportunities database
But it will show linked Opportunities to whose users who do have access to the Opportunities db, thus allowing them to see everything related to a company in one place.
If that is not what you’re getting at, perhaps I am missing something, and you want to clarify exactly what you would like to see when you write “see everything related to a specific company in one place.”