Synonyms (public or private) have nothing to do with privileges. The fact that there is a public synonym on a table in schema1 does not in any way mean that schema2 has the ability to query that table. The presence of a public synonym my give away the fact that the table exists but schema2 won't be able to select any of the data unless it is granted access to the base table.