If we grant privileges on a table to PUBLIC, all database users have access to the table. How does a public synonym differ from that? If we create a public synonym on that table, does that make the table available to all users too? What is the dierence between a direct grant to public and creating a public synonym? Thanks.

--
Create Public Synonym doesnt necessarily grants access rights to the objects, it's just an alternate way of referring the object without mentioning the Schema owner's name.

Only if a table has been given grant it can be viewed/accessed.

To PUBLIC is giving grants to all users of this Database instead of giving grants to individual users.

Hope it's clear!

--Thiagu