There’s some interesting discussions around permissions here in the community, so you might like to check some of them out. This might be a useful post for anyone reading this thread.
For the time being, it’s not possible to grant access to views (which are the usual entry point for users to see the entities that have been shared with them) without also granting access to the databases in the space where the views live.
So using two spaces (one for the data and one for the views) is a common workaround.
Alternatively, using smart sections can be a great way for users with no space-level access to be able to navigate to entities that they have been granted access to.