2010-11-02 7 views
5

Hey Leute. Also, ich bin als dba-Konto angemeldet und ich möchte eine Ansicht in User1-Schema erstellen, aber Daten aus Benutzer2 auswählen.Oracle erstellen Ansicht Problem

habe ich die folgende Abfrage:

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

und ich erhalte den folgenden Fehler:

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

dies zu beheben ich wählen Zugang zu User1 auf User2.Table gewähren musste. Gibt es eine Möglichkeit, dies zu tun, ohne Zugriff gewähren zu müssen, da ich bereits als dba angemeldet bin? Danke Leute!

Antwort

10

Ja, Sie haben (und sollten immer) explizit Zugriff auf Objekte in einem anderen Schema gewähren.

GRANT SELECT ON user2.table TO user1 

Obwohl Sie als „dba Konto“ angemeldet (SYS, ich gehe davon aus), ist die CREATE-Anweisung für das benutzer1 Schema speziell.

8

Sie tun können, CREATE OR FORCE VIEW REPLACE ...

, dass die Sicht trotz des Mangels an Privilegien schaffen wird, aber die Aussicht würde nicht verwendet werden, es sei denn die Privilegien gewährt werden. Es ist eine Lösung, die nützlich sein kann, wenn Berechtigungen später erteilt werden (zB in einem automatisierten Build-Skript).

+1

+1: Lernen Sie etwas Neues –

0

Wahrscheinlich, weil Sie haben keinen Zugriff auf die Tabelle oder Sicht

Abfrage Erteilung Rechte auf Objekt Benutzer;