- A normal synonym is called private synonym whereas a public synonym is created by a keyword public.
- A private synonym is accessible within your schema and a public synonym is accessible to any schema in the database.
- CREATE SYNONYM system privilege is required to create a private synonym and CREATE PUBLIC SYNONYM system privilege is required to create a public synonym
- When you create a synonym for a remote object (function/procedure), you must qualify the remote object with its schema name. Alternatively you can create a local public synonym on the database where the remote object resides, in which case the database link must be included in all subsequent calls to the procedure or function
- Synonym is an alias for a schema object
- Synonym can create a level of security by hiding the owner name and exact object name
- Synonyms are convenient to use and reduces the complexity of the SQL statements for the database users.
- A public synonym is owned by a special user group named PUBLIC and is accessible to every user in the database.
- When you grant object privilege on a synonym, you are really granting privileges on the underlying object, and the synonym is acting only as an alis of the object in the GRANT statement.
- A private synonym can be dropped by a DROP SYNONYM <synonym name> whereas a public synonym can be dropped by DROP PUBLIC SYNONYM <synonym name> command