OCP-1Z0-新051-61题版本-22

QUESTION NO: 22

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.

Answer: D

答案解析:

参考:49:http://blog.csdn.net/rlhua/article/details/12781661

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

Oracle 1z0-051 Exam

"Pass Any Exam. Any Time." - 100% Pass Guarantee 19

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):

CREATE PUBLIC SYNONYM ord FOR orders;

You will get an error.

Error que empieza en la línea 693 del comando:

create public synonym nuly for prueba_null

Error en la línea de comandos:693 Columna:0

Informe de error:

Error SQL: ORA-01031: privilegios insuficientes

01031. 00000 - "insufficient privileges"

The message gives you the answer: OE doesn't have enough privileges. However, if you give the

necessary privileges (issued by DBA):

GRANT CREATE PUBLIC SYNONYM TO OE;

You won't have problems executing the command in the alternative B (issued by OE):

CREATEPUBLIC

SYNONYM ord FOR orders;

Finally, if you need to be sure what system privileges you have in your active session, you can

execute the following command (issued by OE):

SELECT * FROM USER_PRIVS;

(One of the rows must be: CREATE PUBLIC SYNONYM ).

原文地址:https://www.cnblogs.com/hzcya1995/p/13316225.html