2010-11-02 13 views
5

Hola chicos. Por lo tanto, estoy conectado como la cuenta de dba y quiero crear una vista en el esquema de User1, pero seleccionando datos de User2.Oracle Create Ver problema

que utilizó la siguiente consulta:

CREATE OR REPLACE VIEW User1.NewView (Column1) AS 
SELECT DISTINCT Column1 FROM User2.Table 

y me sale el siguiente error:

SQL Error: ORA-00942: table or view does not exist 
00942. 00000 - "table or view does not exist" 
*Cause:  
*Action: 

Para resolver este tuviera que concesión de seleccionar el acceso a Usuario1 en User2.Table. ¿Hay alguna manera de hacerlo sin tener que otorgar acceso, ya que ya estoy conectado como dba? ¡Gracias chicos!

Respuesta

10

Sí, tiene (y siempre debe) otorgar explícitamente acceso a objetos en otro esquema.

GRANT SELECT ON user2.table TO user1 

A pesar de que está conectado como "la cuenta dba" (SYS, estoy suponiendo), la sentencia CREATE es para el esquema usuario1 específicamente.

8

Usted puede hacer CREAR O SUSTITUIR VISTA FUERZA ...

que va a crear la vista a pesar de la falta de privilegios, pero la vista no sería utilizable a menos que se conceden los privilegios. Es una solución que puede ser útil si se otorgan privilegios posteriormente (por ejemplo, en algún script de compilación automatizado).

+1

+1: Aprende algo nuevo –

0

Probablemente porque usted no tiene acceso a la tabla o vista

de consulta conceder privilegios de objeto para el usuario;