If John Doe is an owner of a workspace, he would have access to the Postgres datastore. If object-level permissions are enabled and he is not explicitly granted the view_datastore permission, the Postgres datastore will not appear in the search results.
This should be a pretty quick fix in the elastic_backend.py if we just allow all datastores within a workspace if the requesting user is an owner.