Oracle Create View проблема - PullRequest
       15

Oracle Create View проблема

7 голосов
/ 03 ноября 2010

Привет, ребята. Итак, я вошел в систему как учетная запись dba и хочу создать представление в схеме User1, но выбирая данные из User2.

Я использовал следующий запрос:

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

и я получаю следующую ошибку:

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

Чтобы решить эту проблему, мне пришлось предоставить выборочный доступ для User1 на User2.Table. Есть ли способ сделать это без предоставления доступа, так как я уже вошел в систему как dba? Спасибо, ребята!

Ответы [ 3 ]

11 голосов
/ 03 ноября 2010

Да, вы должны (и всегда должны) явно предоставлять доступ к объектам в другой схеме.

GRANT SELECT ON user2.table TO user1

Хотя вы вошли как «учетная запись dba» (я полагаю, SYS), оператор CREATE предназначен специально для схемы user1.

8 голосов
/ 03 ноября 2010

Вы можете сделать СОЗДАНИЕ ИЛИ ЗАМЕНУ СИЛОВОГО ВИДА ...

Это создаст представление, несмотря на отсутствие привилегий, но представление не будет использоваться, если привилегии не предоставлены. Это решение, которое может быть полезно, если привилегии будут предоставлены позже (например, в каком-либо сценарии автоматической сборки).

0 голосов
/ 05 декабря 2013

Возможно, из-за того, что у вас нет доступа к таблице или представлению

Запрос прав доступа к объекту для пользователя;

...