The ORDERS table belongs to the user OE. OE has granted the SELECT privilege on the ORDERS
table to the user HR.
Which statement would create a synonym ORD so that HR can execute the following query
successfully?
SELECT * FROM ord;
A.
CREATE SYNONYM ord FOR orders; This command is issued by OE.
B.
CREATE PUBLIC SYNONYM ord FOR orders; This command is issued by OE.
C.
CREATE SYNONYM ord FOR oe.orders; This command is issued by the database administrator.
D.
CREATE PUBLIC SYNONYM ord FOR oe.orders; This command is issued by the database administrator.
Explanation:
Creating a Synonym for an Object
To refer to a table that is owned by another user, you need to prefix the table name with the name
of the user who created it, followed by a period. Creating a synonym eliminates the need to qualify
the object name with the schema and provides you with an alternative name for a table, view,
sequence, procedure, or other objects.
This method can be especially useful with lengthy object names, such as views.
In the syntax:
PUBLIC Creates a synonym that is accessible to all users synonym Is the name of the synonym to
be created object Identifies the object for which the synonym is created Guidelines
The object cannot be contained in a package.
A private synonym name must be distinct from all other objects that are owned by the same user.
If you try to execute the following command (alternative B, issued by OE):